什么是索引?索引的作用是什么?Mysql目前主要的几种索引类型
一,什么是索引?作用是什么?
- 索引:对数据库中一列或多列的值进行排序的一种结构
- 作用:使用索引可以快速访问数据库表中特定信息(加速检索表中的数据)
二、索引类型
Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE
1. FULLTEXT
即为全文索引,其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。
全文索引并不是和MyISAM一起诞生的,它的出现是为了解决WHERE name LIKE “%word%"这类针对文本的模糊查询效率较低的问题。
2. HASH
由于HASH的唯一(几乎100%的唯一)及类似键值对的形式,很适合作为索引。
HASH索引可以一次定位,不需要像树形索引那样逐层查找,因此具有极高的效率。但是,这种高效是有条件的,即只在“=”和“in”条件下高效,对于范围查询、排序及组合索引仍然效率不高。
3. BTREE
BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。这是MySQL里默认和最常用的索引类型。
4. RTREE
RTREE在MySQL很少使用,仅支持geometry数据类型,支持该类型的存储引擎只有MyISAM、BDb、InnoDb、NDb、Archive几种。
相对于BTREE,RTREE的优势在于范围查找
三、索引类型
普通索引:仅加速查询
唯一索引:加速查询 + 列值唯一(可以有null)
主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个
组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
全文索引:对文本的内容进行分词,进行搜索
ps.
索引合并,使用多个单列索引组合搜索
覆盖索引,select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。
四、执行计划
explain + 查询SQL - 用于显示SQL执行信息参数,根据参考信息可以进行SQL优化
什么是索引?索引的作用是什么?Mysql目前主要的几种索引类型相关推荐
- mysql+br_mysql有哪几种索引
从数据结构角度 1.B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理 2.hash索引: a 仅仅能满足"=","IN& ...
- mysql中常见的几种索引
索引有哪几种类型? 创建索引 主键索引: 数据列不允许重复,不允许为NULL,一个表只能有一个主键. 唯一索引: 数据列不允许重复,允许为NULL值,一个表允许多个列创建唯一索引. 可以通过 ALTE ...
- 什么是索引?Mysql目前主要的几种索引类型 和 引擎区别?
一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的My ...
- mysql 索引类型 ref_什么是索引?Mysql目前主要的几种索引类型
一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的My ...
- mysql 走索引 很慢_技术分享 | MySQL优化:为什么SQL走索引还那么慢?
作者:胡呈清 背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 core 分析过程 接手这个问题时现场已经不在了,信息有限 ...
- Mysql复习计划(四)- 索引失效和数据库设计规范
Mysql复习计划(四)- 索引失效和数据库设计规范 一. 索引失效 1.1 数据准备 1.2 最左匹配原则 1.3 计算.函数.类型转换导致索引失效 1.4 范围条件右侧的列索引失效 1.5 不等于 ...
- mysql索引如何分裂节点_从MySQL Bug#67718浅谈B+树索引的分裂优化(转)
原文链接:http://hedengcheng.com/?p=525 问题背景 今天,看到Twitter的DBA团队发布了其最新的MySQL分支:Changes in Twitter MySQL 5. ...
- mysql 回退查询_MYSQL数据库表排序规则不一致导致联表查询,索引不起作用问题...
Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...
- mysql改了排序规则不生效_Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题...
Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...
- 数据索引是什么?索引作用是什么?什么样的字段适合建索引?索引的优缺点是什么?
数据索引是什么?索引作用是什么?什么样的字段适合建索引?索引的优缺点是什么? 数据库索引,是数据库管理系统中一个排序的数据结构,索引的实现通常使用B树及其变种B+树.在数据之外,数据库系统还维护着满足 ...
最新文章
- 机器人抓取领域性能评估标准
- Mongo 用户管理
- oracle构造过程实例
- oracle+olh+hive,hadoop+hive+hbase的简单安装 | YallonKing
- 谈谈如何学习Linux操作系统
- 关于《构建之法》阅读笔记 的致歉博客
- POJ NOI MATH-7656 李白的酒
- (转)PHP利用Curl、socket、file_get_contents POST数据
- Vue + Echarts 实现中国地图的绘制
- 硬盘分区整数计算器(如何让硬盘容量成整数)
- Gitbub远程仓库的访问
- java实现多模匹配算法_多模字符串匹配算法-Aho–Corasick
- c语言memcmp函数详解,C语言之memcmp()函数
- 类似qvod的流媒体点播服务器架设建议
- ast自动扣webpack脚本实战
- composer global require fxp/composer-asset-plugin:1.0.0的Not enough arguments解决
- 有哪些性价比高的照明品牌?性价比最高的灯具品牌
- 京东到家话费券系统NIO实战
- C#+winform登陆界面案例
- NYoj42 一笔画问题