索引
2017-07-14 本文已影响0人
Will_2ad2
一、索引原理
索引类似于字典、图书目录,建立索引后数据库会建立一张索引表,建立索引字段搜索时,不会全表扫描,会根据索引表进行搜索。
二、建立索引原则
1、最左前缀匹配原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。
2、=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式。
3、尽量选择区分度高的列建立索引,唯一键的区分度是1,而一些状态、性别字段可能在大数据面前区分度就是0。
4、索引列不能参与计算。
5、尽量的扩展索引,不要新建索引。比如表中已经有a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可。