数据库 索引

Posted su-feng-address

tags:

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

mysql优化思维导图:

                       技术图片

问题描述:

假设某表一个联合索引(c1,c2,c3,c4),以下哪条语句中只使用到该联合索引的c1,c2,c3部分?

 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=x
 C where c1=x and c4=x group by c3,c2
 D where c1=? and c5=? order by c2, c3
 E where c1=? and c2=? and c5=? order by c2,c3

准备工作:建立库,建立表,建立索引

                                                          技术图片

Btree左前缀使用规则:

如按f1, f2,f3, ....fN建立索引

查询时,where条件中,按f1,f2...的顺序由左到右,索引发挥作用,

如果中间某列没有条件或者like条件,导致后面的列,索引用不上。

索引也能用来排序,针对有顺序的表,索引的使用可以避免临时表和文件排序。

                                                         技术图片

select_type: SIMPLE    简单查询

type: range(表示范围查找效果)   ref(表示)

 

A 选项分析 :

                                                  技术图片

                                                                                                              图1

B 选项分析  

                                                            技术图片

                                                                                                                图2

C 选项分析:

     在图1,我们可以按照索引的顺序,直接进行分组,但选项中排序为order by c3,c2,

     经试验,

                                                技术图片

                                                                                                    图3

可以看到查询过程中,创建了临时表(Using temporary),文件排序(Using filesort)

变化order by顺序,

                                               技术图片

由于c1下的c2, c2下的c3,  c3下的c4都是有顺序的,所以避免了临时表的创建,文件的排序,

D选项也是一样的道理,该选项中只用到了c1,c2,c3;

E 选项分析,

由于在该表达式条件中,where c1=? and c2=? and c5=? order by c2,c3,已经确定了c2,c2下的c3是有顺序的,所以....

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

javascript UV Index Monitor App订阅PubNub并显示UV索引值。博文的代码片段。在这里查看项目:https:// githu

c_cpp UV Index Indicator订阅PubNub并使用颜色显示UV索引值。博文的代码片段。在这里查看项目:https:/

活动结果片段索引超出范围:0x20001

在片段着色器中,为啥我不能使用平面输入整数来索引 sampler2D 的统一数组?

片段(Java) | 机试题+算法思路+考点+代码解析 2023

索引1处片段中的非法字符:Heroku上的#{systemEnvironment ['DATABASE_URL']}配置数据源