MySQL的count查询超级慢

看到平均执行时间13.773s,意识到自己的认知漏洞了,一直认为有个记录总数的地方,直接返回这个数就好了
原因
主键是聚集索引,所以不选择主键,会选择你的索引里面长度最短的那个,如果你主键加了索引,那是非聚集索引,因为索引长度最短,所以会选择主键索引
加索引前,key_len为82

加索引后,key_len为4
解决办法
给主键加上唯一索引
ALTER TABLE 表 ADD INDEX `u_idx_id` (`id`) USING BTREE;
加索引后执行时间为4s左右
问题
1、为什么key的长度会显著影响遍历速度?
前后两个查询计划中最显著的区别就是 key_len,一个长度为4字节,一个为82字节,这导致了count查询速度的巨大差异。
本文揭示了MySQL中count查询速度慢的原因,关键在于索引长度。通过实例说明主键加唯一索引后,查询时间从13.773s降至4s,解释了key_len对遍历速度的影响。优化策略侧重于理解索引结构对查询性能的决定性作用。

914

被折叠的 条评论
为什么被折叠?



