标签:数据表 index str 必须 最好 否则 style 分词 提高
1、定义:
在MySQL中,索引(index)也叫做“键(key)”,他是存储引擎用于快速找到记录的一种数据结构,可以提高查询效率。
对查询性能优化的最有效手段就是索引优化。
2、工作原理:
在MySQL中,索引是在存储引擎层实现的,而不是在服务器层。
在MySQL中,存储引擎用类似的方法使用索引,其先在索引中查找对应的值,然后根据匹配的索引记录来找到对应的数据行,最后将数据结果集返回给客户端。
3、索引类型:
(1)常规索引:
也叫普通索引(index或key),一张数据表中可以有多个常规索引。
一般没有指明索引的类型,都是指常规索引。
(2)主键索引 - primary key
简称主键,提供唯一性约束。一张表中只能有一个主键。
被标志为自动增长的字段一定是主键,但是主键不一定是自动增长。
一般把主键定义在例如编号之类的字段上,其数据类型最好是数值。
(3)唯一索引 - unique key
提供唯一性约束。一张表中可以有多个唯一索引。
(4)全文索引 - Full Text
可以提高全文搜索的查询效率,一般使用Sphinx替代,但是Sphinx不支持中文检索。
Coreseek是支持中文的全文检索引擎,也称作具有中文分词功能的Sphinx。
实际项目中,用到的是Coreseek。
(5)外键索引 - Foreign key
简称外键,外键会自动和对应的其他表的主键关联。
外键的主要作用是保证记录的一致性和完整性,但是由于外键的效率不是很高,所以并不推荐使用外键。
注意:只有InnoDB存储引擎的表才支持外键。如果要删除父类中的记录,必须先删除子表中的额相应记录,否则会出错。
4、索引的方法
主要有以下几种:
(1)B-Tree索引:
如果没有特别指明类型,那一般说的就是B-Tree索引。B-Tree对索引是顺序存储的,因此和适合查找范围数据。
因为存储引擎不在需要进行全表扫描来获取需要的数据,故能够加快访问数据的速度。
注意:不同的存储引擎以不同的方式使用B-Tree索引,性能也各不相同。
例如:MyISAM使用前缀压缩技术使得索引更小,但InnoDB则按照原始的数据格式存储索引。
再如:MyISAM通过数据的物理位置引用被索引的行,而InnoDB则根据主键引用被索引的行。
资料来源:MySQL索引详情
标签:数据表 index str 必须 最好 否则 style 分词 提高
原文地址:https://www.cnblogs.com/LYliangying/p/9565211.html