携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第5天,点击查看活动详情
MySQL的索引分类
1、普通索引,普通索引就是最基本的索引,没有任何限制。
2、唯一索引,与普通索引不同,唯一索引的列值必须唯一,允许为null。
3、主键索引,主键索引是一种特殊的唯一索引,并且一张表只有一个主键,不允许为null。
4、全文索引,全文索引是MyISAM的一个特殊索引类型,它查找的是文本中的关键词,主要用于全文检索。
5、联合索引,联合索引是同时在多个字段上创建索引,查询效率更高。
合适使用索引
1、经常需要用于查询的字段适合创建索引。
2、在一张表中字段的值区分度越高则越适合创建索引。
3、在一张表中字段的值是有序插入的更适合创建索引,这样不需要频繁更新索引文件。
不适合使用索引
1、表中数据更新频率高的字段不合适创建索引。
2、在一张表中字段的值区分度底则不适合创建索引。
3、过长的字段不适合创建索引。
如何建索引
1、优先使用联合索引,查询的时候,联合索引比普通索引能更精准的匹配到所需数据。
2、使用联合索引时,区分度高的字段放前面,这样可以减少查询次数,更快地匹配到所需数据。
3、值唯一的字段,使用唯一索引,使用唯一索引,可以避免程序bug导致产生重复数据。
4、排序和分组字段也尽量创建索引,在order by和group by中的字段也尽量创建索引,避免使用文件排序,可以使用索引排序提供性能。
5、避免创建过多索引,索引好用,适度即可。创建过多的索引,会占用更多存储空间,也会严重影响SQL性能,每次更新SQL,都需要更新大量索引文件,得不偿失。