多列索引的运用

Posted longqin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多列索引的运用相关的知识,希望对你有一定的参考价值。

 

索引

  * 多个单列索引 ,只能使用其中的一个索引

  1、btree索引的常见误区

    在where条件常用的列都加上索引

    例:where cat_id=3 and price>100; //查询第三个栏目,100元以上的商品

    误:cat_id上和price尚都加上索引

    错:只能用上cat_id或price索引,因为独立的索引,同时只能用上1个

 

  2、在多列上建立索引后,查询哪个列,索引都将发挥作用

  误:多列索引上,索引发挥作用,需要满足左前缀要求

语句 索引是否发挥作用
Where a=3
Where a=3 and b=5
Where a=3 and b=5 and c=4
Where b=3 或 where c=4
Where a=3 and c=4 a列能发挥索引, c不能
Where a=3 and b>10 and c=7 A能利用,b能利用, c不能利用
同上,where a=3 and b like ‘xxxx%‘ and c=7 A能用,B能用,C不能用

    例:

      A:where c1=x and c2=x and c4>x and c3=x   // 全部用上了

      B:where c1=x and c2=x and c4=x order by c3  // c1,c2,c3用上了

      C:where c1=x and c4=x group by c3,c2  // c1用上了

      D:where c1=? and c5=? order by c2,c3 // c1,c2,c3用上了

      E:where c1=? and c2=? and c5=? order by c2,c 3 // c1,c2,c3用上了

以上是关于多列索引的运用的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 中的多列索引如何工作?

聊聊mysql的多列组合查询

MySQL中多列索引的字段顺序是不是重要

pandas使用iloc函数基于dataframe数据列的索引抽取单列或者多列数据其中多列索引需要嵌入在列表方括号[]中或使用:符号形成起始和终止范围索引

多列索引列顺序

如何在多列上创建索引