mysql5.7.31未开启缓存,第一次查询很慢

云上的耳朵 2023-11-10 17:36:22

我遇到的这个问题并不是简单地第一次查询慢,后续查询很快的缓存问题!

 

1. 我并未开启查询缓存

SHOW VARIABLES LIKE '%query_cache%';

show variables like 'innodb_buffer_pool%';

 

2. 我执行的是单表的查询,只不过数据量大加上where条件里使用的是rlike,导致查询有一点慢,大约17秒

3. 当执行完第一次查询后,后续再执行该查询语句将会变得很快,大约1秒左右

4. 此时重启mysql服务,重启应用服务都无法复现查询慢的问题,执行该sql查询时,依然很快,大约1秒左右

5. 当超过5个小时(这个时间并没有具体测试出小于5个小时的极限值是多少)没执行该sql查询时,再次执行该sql查询又变得很慢,大约17秒左右

6. 当重启mysql所在的虚拟机后,复现了第一次查询慢的现象

综上现象猜测,是操作系统级别记录了mysql的一些的东西,并且该记录存在超时失效或操作系统重启后失效的机制(类似于临时文件?),但具体是怎么回事现在还是没有头绪,有人遇到类似问题请麻烦解答下,谢谢

...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1

你可以查一下你的buffer_pool_size大小, 隔5小时后,应该是被其它数据挤出了buffer_pool

  • 举报
回复
@chengangcsdn 嗯,确实存在这种可能。我查了数据库配置的innodb_buffer_pool_dump_at_shutdown和innodb_buffer_pool_load_at_startup都是OFF,这怎么解释mysql服务重启后查询快,但是虚拟机重启后查询慢呢
  • 打赏
  • 举报
回复 1

第一次查询慢不一定是因为没有缓存的原因,更大的可能性是因为第一次查询需要建立服务与数据库的连接,建立连接由于需要建立网咯连接,进行用户鉴权等操作,如果没有一个连接池是可能会很慢

56,618

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧