2019 mysql 缓存失效重新认识

2019-10-26 18:00:57 +08:00
 ebony0319

今天面试问道 mysql 缓存失效条件,当提到 <,>,in,between and,or 的时候面试官说其实可能会走索引,回来一试好像真的。 mysql 环境:5.7.25-log 表 every_day,id 自增主键,days 普通索引。数据量 365。

测试<,>

select * from every_day where id<=100;

select * from every_day where days<=100;

select * from every_day where days between 1000 and 2000;

select * from every_day where days =1 or days=2;

select * from every_day where days in (1,2,3);

全部都是 INDEX_SCAN (range)

当然他也提到如果数据量达到一定数量,索引还是会失效(没有验证)。

4294 次点击
所在节点    MySQL
6 条回复
pedia0992
2019-10-26 21:46:35 +08:00
有二级索引,当然会走索引了.
hushao
2019-10-26 22:00:58 +08:00
没有理由不走索引啊..
ebony0319
2019-10-26 22:54:51 +08:00
@pedia0992
@hushao
我刚试了低版本的,确定确定走的全表扫描。
lolizeppelin
2019-10-27 09:54:38 +08:00
不是所有情况都是走索引比全表扫描快的
Nick66
2019-10-27 12:07:12 +08:00
mysql 5.7 单表五百万依然走索引,应该是高版本做了优化
Aresxue
2019-10-28 14:17:19 +08:00
用 innodb 大概率都是会走的,这个要看存储引擎以及其是如何组织索引的

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

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

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

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

© 2021 V2EX