MySQL的count查询超级慢

MySQL的count查询超级慢,第1张

MySQL的count查询超级慢 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查询速度的巨大差异。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5677950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存