mysql 索引建立
如何建立mysql索引?
创建索引原则
1、左前缀原则 :
mysql索引匹配会从右匹配,到遇到( > < between like)终止。如 我们建立索引(a,b,c,d), a = 1 and b=2 and c>3 and d=4。此时,索引d不会被用上。真正有效的索引(a, b, c)。如果把索引建立成(a,b,d,c), 则四个索引都能被用上
2、in 和 = 顺序可以随意。
如可建立索引(a, b , c)任意顺序 , a = 1 and c=2 and b=3 , 三个索引依然有效。这是Mysql查询优化器优化成可以识别的索引形式
3、扩展索引,尽量不新建索引。
如原有索引(a), 现在有需求,需要索引(a, b),这时你完全没必要去新建一个索引(a, b)。你只需要扩展你原有的索引(a),把它改为(a, b).此时, 既能保证原有的索引,也能达到新索引的目的。如 a = 1 a = 1 and b=2 这两个分别能走到索引(a),(a, b)
4、尽量选择区分度高的列作为索引
区分度的公式是count(distinct X)/count(*), 表示字段不重复的比例,比例越大我们扫描的记录数越少,唯一键的区分度是1,而一些状态、性别字段可能在大数据面前区分度就是0