面试必问的数据库-3.3:索引

整理和记录数据库索引的一些面试题:

 

1:联合索引

1.1:mysql建了两个联合索引分别是(a,b)和(b,a),在查询语句select a,b from table where a=x and b=x时,走的是哪一条索引?为什么?

一般在设计时候,是不会设计这种索引的,这个题面试考虑的是对索引的建立和底层优化的一些知识;

走哪个索引得MySQL的成本分析器来决定,基本上就是看a和b的区分度,可以用explain format=json去看详细的查询成本统计结果。

底层都是依赖优化器的分析。

这个问题可能不同mysql版本处理都不一样:

mysql5.6:会根据索引创建的时间先后,选择走哪个索引;

-

解决方案:真有这种情况,建议强制走哪个索引就好了;

 

ing。。。。。。。。

 

 

 

 

 

 

 

Guess you like

Origin blog.csdn.net/u010953880/article/details/115916411