MySQL使用count(*)命令慢的解决方案

笔者目前在负责一个简单的Spring Boot项目,该项目有一个操作日志的功能。在分页查询操作日志时,需要查询日志的记录数。日志记录也不大,23W左右,比起其他大项目一两百W,少很多了。但是,令人困惑的是,使用count(*)查询总数时,总是十分缓慢,在20s左右,使得打开操作日志非常慢。


查询非常慢

于是我改成了count(1)、count(id),然而都不行。


count(1)
count(id)

网上资料说MySQL对count(*)做了特别的优化,按理来说应该是最快的,然而三个都不约而同的非常慢。

解决方案是,为ID加了个唯一键:


加了一个唯一键

之后再使用count(*)便能正常查询了:


查询非常快

对于这个问题的原因,依旧没能想明白为什么。欢迎大家相互讨论~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容