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

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

会选 cost 小的那个

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

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

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

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

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

© 2021 V2EX