最近一直在优化一个查询数据的接口,怎么调整查询都很缓慢,查询条件字段都有设置索引,一直好奇是哪里出了问题;突然发现一张表的索引有点区别,两个字段对应一个索引名。然后随口问了问同事,发现是组合索引(遵循”最左前缀“原则)。额,我不懂,尴尬了。重新对查询字段单独设置一个普通索引,速度立马加快了。
一. 索引的类型与区别:
Mysql常见索引有:主键索引、唯一索引、普通索引、全文索引、组合索引
主键索引(PRIMARY): 它 是一种特殊的唯一索引,不允许有空值。
唯一索引(UNIQUE):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
全文索引(FULLTEXT ): 仅可用于 MyISAM 表, 用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时好空间;用在比较短的文本,如果就一两行字的,普通的 INDEX 就可以了。
普通索引(INDEX): 最基本的索引,没有任何限制。
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
组合索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。
二. 索引的使用:(普通索引,组合索引)
1. 如果针对单个字段进行查询,建立普通索引就满足了;
查看索引: show index from 表名;
命令显示的