mysql select count(*) from table; 当表数据到达一定量时为啥这么慢!

mysql 不同的存储引擎 count 的时候的机制不一样,前提是 没有where 条件 ,那你可能会想mysql 为啥不把当前表的数据行数记录下来呢?这样当一条sql 语句执行 select count() from table 时直接读记录的行数就可以了。其实mysql 再 myisam 中就是这样做的,但是你可能又会想,我安装的mysql的存储引擎是innodb啊,为啥innodb中不这样做呢,接下来我们就一起分析分析为啥innodb 不像myisam 那样做呢。

  1. 谈到mysql 的 innodb 和myisam 那我们就的谈谈他们的区别了,innodb 和 myisam 最大的区别应该是innodb支持事物。事物隔离级别 REPEATABLE_READ 再这个隔离级别下会存在 虚读也就是幻读的情况,为了保证每个事物看到该事物内应该看到的数据,mysql 用mvcc 多版本控制解决了虚读的问题,但是由于mvcc的原因 innodb 中的数据行也不一样,这样innobb只能在执行select count() 时把表中所有记录都查询出来再统计。
    这样就是innodb为啥count(
    ) 时慢的原因了。

mysq coun(*)时为啥这么慢相关推荐

  1. 手机关机收不到微信消息__电脑微信关机时为啥收不到信息?_

    求助问题:_电脑微信关机时为啥收不到信息?_ 问题 最佳答案 电脑关机重新启动试下,如果还是收不到信息,那么你有其它聊天软件试下其它聊天软件可以接受信息吗?如果这些都不可以,看来要拿去维修或者把电脑一 ...

  2. hbase命令行在create table时为啥有MIN_VERSIONS而没有MAX_VERSIONS

    hbase shell在create表格的时候, 我们看到有VERSIONS和MIN_VERSIONS 为啥没有MAX_VERSIONS呢? 这是因为: hbase.column.max.versio ...

  3. telnet后为啥打开的时防火墙_飞机起降时为啥要打开遮光板?机餐为啥总觉得不好吃?答案看这里...

    关于国际民航日 1944年12月7日,52个国家在芝加哥签署了国际民用航空公约(也称芝加哥公约).根据芝加哥公约的规定,1947年4月4日,国际民航组织ICAO正式成立.1992年9月召开的国际民航组 ...

  4. 计算机启动时为啥总要检测硬盘,硬盘总是自检 开机后总是硬盘自检关闭方法...

    硬盘总是自检 开机后总是硬盘自检关闭方法 发布时间:2013-03-24 15:02:21   作者:佚名   我要评论 每次系统都会遇到硬盘自检,不过每次检查都没有错误,主要就是等的时间比较长,很多 ...

  5. 我妈问我12306购票时为啥需要图片验证码

    如何给别人讲清楚图片验证码的原理,通过打比方的方式通俗易懂解释图片验证码的作用及原理. 登录系统时图片验证码的原理,下面通过打比方的方式给你讲清楚. 用户要登录系统就好比要进入一个门上上锁的房间,用户 ...

  6. mysql5.5.28安装详最后一个步骤时为啥一直转_mysql5.7.28下载、安装、登陆步骤详解...

    一.MySQL 下载 然后,将该页面划到最后,看到如下界面: 进去后看到: 点击上图中的第二步后,出现下图: 先选择版本,然后根据电脑是32位|64位来下载相应的版本.点击download后,出现下图 ...

  7. 计算机启动时为啥总要检测硬盘,每次开机都磁盘检查怎么办_如何关闭硬盘开机自检-win7之家...

    我们在开机的时候有时会遇到磁盘自检的情况,但要是每次开机都要自检的话,就有问题了,可以通过命令或者注册表进行关闭即可,那么如何关闭硬盘开机自检呢,下面小编给大家分享每次开机都磁盘检查的解决方法. 解决 ...

  8. php涉及数据库操作时响应很慢。

    症状描述: 网站是php开发的,大部分页面响应很慢. 本地开发时响应速度很快,但是部署到生产环境后大部分响应很慢. 通过谷歌浏览调试发现PHP页面加载很慢,有个别的php请求的响应时间甚至超过10秒, ...

  9. 面试高频——JUC并发工具包快速上手(超详细总结)

    目录 一.什么是JUC 二.基本知识 2.1.进程和线程 2.2.Java默认有两个进程 2.3.Java能够开启线程吗? 2.4.并发和并行 2.5.线程的状态 2.6.wait和sleep的区别 ...

最新文章

  1. 在实践中我遇到stompjs, websocket和nginx的问题与总结
  2. 产品经理怎么样用图表传达数据信息(多图)
  3. 判断resultset是否遍历到最后一条记录_干货:一条SQL语句执行得很慢的原因
  4. postman可以测试websocket吗_小海塔罗娱乐测试2021年可以脱单吗?
  5. mysql五-1:单表查询
  6. .net2.0 orm_Hibernate 4.3 ORM工具
  7. extern、static
  8. Vue数据绑定v-bind
  9. 2018年度全球收入52强App发行商榜单公布:腾讯连续三年居首
  10. java query object_java queryforobject
  11. 如何用 ASP.NET Core 实现熔断和降级?
  12. sed基本用法 sed文本块处理 、 sed高级应用
  13. 软工课设2021-10-19会议记录
  14. Python pdf 转jpg/png工具
  15. 重新注册所有dll文件
  16. JavaScript常见的六种继承方式
  17. 【转载】SCI论文配图配色方案参考网站
  18. React-Native之轮播组件汇总 以及looped-carousel的介绍与使用
  19. 爬取微信公众号cookie获取与token获取
  20. 3年试点即将到期,电子印章将成网络货运新动力

热门文章

  1. 利用PRM-DUL工具恢复oracle dbf文件中的数据
  2. 罗永浩直播卖货,体现了一个年近50岁男人的无奈
  3. 买卖股票的最优时机含手续费(LeetCode-714)
  4. 【i春秋综合渗透训练】我很简单,请不要欺负我
  5. 当一个硬盘掉线后如何重建阵列?
  6. python中exec是什么意思_Python中的exec()
  7. 靠写iPhone程序发财的三个故事
  8. B 站上有哪些很好的学习资源?
  9. houdini 节点批量改名
  10. android insert方法,史上最精炼android四大组件基础总结(忘记了的可以过一遍)