面试的时候被问, mysql 在执行 sql 的时候是如何选择使用哪个索引的?

2019-06-10 13:14:08 +08:00
 clifftts
大家觉得这个问题有没有毛病?我看过一些 mysql 的数据,但是涉及 sql 解析器,优化器的部分感觉都很理论且笼统,对于 mysql 是如何选择出索引的问题上确实没有思路。大家分析分析这个题
2699 次点击
所在节点    程序员
8 条回复
acehow
2019-06-10 14:44:30 +08:00
explain
snappyone
2019-06-10 14:45:52 +08:00
数据抽样做预测
wuxi889
2019-06-10 14:49:18 +08:00
感觉是考你每种索引的特点吧
clifftts
2019-06-10 15:09:20 +08:00
@wuxi889 考察每种索引的特点,应该问如何针为 sql 设计一个最优索引吧
clifftts
2019-06-10 15:09:51 +08:00
@snappyone 老哥稳,比较接近了
snappyone
2019-06-10 15:19:12 +08:00
@clifftts force index 本身侵入性太强了,可以考虑低峰期 analyze 下 table
liprais
2019-06-10 15:30:36 +08:00
mysql 连直方图都没有基数估计跟算命差不多准
Raymon111111
2019-06-10 17:31:06 +08:00
简单讲是通过算 cost

会选 cost 小的那个

换句话说会选区分度大的那个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/572424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX