mysql 索引问题
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Mysql 优化器默认基于RBO成本计算,哪个成本快,用哪个,不一定就是最优解。
另外建索引一般只需建a,b 和 b 两对索引,不会建a,b 和 a(这个没必要而且增加维护成本)。