mysql 索引问题

发布于 2022-09-12 03:21:38 字数 353 浏览 19 评论 0

MySQL5.7

我的表 比较简单 只有 id,a,b 三个字段 (id是自增主键)

一开始 表中只有一个索引 a, 发现如下语句走a索引

explain select a,b from t1 where a=998 and b = 13;

后来新增了个 (a,b)联合索引, 结果发现还是走 a 索引, 不走联合索引

后来删除了 索引a, 只保留 (a,b)联合索引, 发现上面sql 走了联合索引, 并且是覆盖索引

之后又加上 索引a, 发现走的还是 (a,b)联合索引

那为什么一开始一直走索引a呢? 感觉好像缓存了什么似的..... 好奇怪

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

肤浅与狂妄 2022-09-19 03:21:38

Mysql 优化器默认基于RBO成本计算,哪个成本快,用哪个,不一定就是最优解。

另外建索引一般只需建a,b 和 b 两对索引,不会建a,b 和 a(这个没必要而且增加维护成本)。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文