美文网首页
MySQL使用count(*)命令慢的解决方案

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

作者: Jam_Lin | 来源:发表于2021-09-30 14:27 被阅读0次

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


查询非常慢

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


count(1) count(id)

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

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


加了一个唯一键

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


查询非常快

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

相关文章

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

    笔者目前在负责一个简单的Spring Boot项目,该项目有一个操作日志的功能。在分页查询操作日志时,需要查询日志...

  • mysql慢查询 --- 2021-10-28

    进入mysql控制台,使用命令查看慢sql,进行定位分析:

  • SQL优化以及锁表总结

    一、慢SQL的排查与分析 1、慢sql的定位使用Druid监控oracle的ARW文件mysql慢日志或使用命令s...

  • MySQL 索引及查询优化总结-2018-03-20

    MySQL 索引及查询优化总结 文章《MySQL查询分析》讲述了使用MySQL慢查询和explain命令来定位my...

  • MySQL 索引及查询优化总结

    本文由云+社区发表 文章《MySQL查询分析》讲述了使用MySQL慢查询和explain命令来定位mysql性能瓶...

  • MySQL count(*) 慢吗

    原文《MySQL实战45讲》 count(*)的实现方式 在MySQL中,不用的引擎对count(*)有不同的实现...

  • mysql索引查询

    参考文档:explain命令mysql慢查询优化 一、主键和索引的区别 二、mysql查询时如何使用索引 三、ex...

  • mysql的一些配置操作

    一、背景 记录使用mysql过程中遇到的问题,及一些配置 二、mysql配置 三、慢查询日志 1、命令行临时生效 ...

  • MySQL-基本SQL命令

    基本MySQL命令 MySQL命令的使用规则 没条命令必须以;结尾 SQL命令不区分大小写 使用\c终止命令的执行...

  • mysql调优及常用命令

    mysql常用命令 慢查询日志 mysqlddumpslow(查看慢查询日志) mysql5.7(虚拟列) mys...

网友评论

      本文标题:MySQL使用count(*)命令慢的解决方案

      本文链接:https://www.haomeiwen.com/subject/wtutiltx.html