MySQL第一次查询很慢?
问题描述
有个user表,里头有
uid
regdate //注册日期
reg_package //注册包
reg_channel //注册渠道
...
现在我有一条SQL查询用户数据
SELECT * FROM `user` ORDER BY `regdate` DESC LIMIT 0,50;
这个表上有个多列的索引,idx_regdate_reg_package_reg_channel(key_len有202)
这条SQL也用了这个索引了(用了EXPLAIN看了)
问题
这条语句第一次执行的时候,查询速度特别慢,之后的就会快很多,这里让我很不解
PS:我知道InnoDB索引是要用到缓冲,难不成跟缓冲有关系?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
慢的原因不在于这条语句,弄错了,我排查了下,是
select COUNT (*) FROM user
这条语句慢的缘故数据库有很多缓存, sql 语句解析缓存, 查询结果缓存,索引缓存,你说的第一次慢,之后快, 很可能是查询结果缓存. 你可以试试第二次查询时改变一下参数:
如第一次
第二次
看看是不是也慢 ?
如果数据量很大,请不要用select *,建议用 select field