当前位置: 首页 > news >正文

同一个域名网站做301网站建设公司类型

同一个域名网站做301,网站建设公司类型,excel做网站链接,固定ip做网站路由设置统计一张表的总数量#xff0c;是我们开发中常有的业务需求#xff0c;通常情况下#xff0c;我们都是使用 select count(*) from table SQL 语句来完成。随着业务数据的增加#xff0c;你会发现这条语句执行的速度越来越慢#xff0c;为什么它会变慢呢#xff1f; 为什…统计一张表的总数量是我们开发中常有的业务需求通常情况下我们都是使用 select count(*) from table SQL 语句来完成。随着业务数据的增加你会发现这条语句执行的速度越来越慢为什么它会变慢呢 为什么会变慢想要得到答案就需要知道 MySQL 是如何统计总数量的先说一个前提吧count(*) 的具体实现是由存储引擎实现的也就是说不同的存储引擎实现的方式不一样。标题为什么select count( * ) from table在 InnoDB 引擎中比 MyISAM 慢也是高频面试题。 InnoDB和MyISAM 是我们常用的 MySQL 存储引擎所以主要对比一下 count(*) 在 InnoDB 和 MyISAM 中的实现 「在 MyISAM 存储引擎中把表的总行数存储在磁盘上当执行 select count(*) from table 时直接返回总数据」。「在 InnoDB 存储引擎中跟 MyISAM 不一样没有将总行数存储在磁盘上当执行 select count(*) from table 时会先把数据读出来一行一行的累加最后返回总数量」。 知道了 InnoDB 和 MyISAM 引擎 count(*) 实现之后为什么select count(*) from table在 InnoDB 引擎中比 MyISAM 慢应该有答案了吧但是这个结论需要有一个前提就是统计 SQL 不带过滤条件。如果 统计数量 SQL 语句为select count(*) from table where x 23那么在 MyISAM 中就不一定比 InnoDB 快了。 「InnoDB 中 count(*) 语句是在执行的时候全表扫描统计总数量所以当数据越来越大时语句就越来越耗时了」为什么 InnoDB 引擎不像 MyISAM 引擎一样将总行数存储到磁盘上这跟 InnoDB 的事务特性有关由于多版本并发控制MVCC的原因InnoDB 表“应该返回多少行”也是不确定的。 不妨用一个例子来说明一下假设现在 t 表中有 10000 条数据现在有三个用户同时访问的会话 会话 A 先启动事务并查询一次表的总行数。会话 B 启动事务插入一行后记录后查询表的总行数。会话 C 先启动一个单独的语句插入一行记录后查询表的总行数。 会话执行流程表 会话A会话B会话Cbegin;select count(*) from tableinsert into table (插入一行)begin;insert into table(插入一行)select count(*) from table;(返回10000)select count(*) from table;(返回10002)select count(*) from table;(返回10001) 假设从上到下是按照时间顺序执行的同一行语句是在同一时刻执行的。可以看出在最后时刻三个会话返回的总行数不一样。 出现不一样的结果跟 InnoDB 存储引擎有关系「在默认隔离级别可重复读的情况下通过多版本并发控制MVCC来实现每一行记录都需要判断自己是否对这个会话可见因此在统计总数量时InnoDB 只好把数据一行一行的读取出来判断只有当前会话可见的才纳入统计中」。所以同一时刻不同会话查询到的数量就不一样。 InnoDB 引擎在 count(*)语句上也做了优化我们知道在 InnoDB 存储引擎中是以索引组织表的方式存储数据主键索引树上叶子节点存放在所有的数据而普通索引树的叶子节点是主键值所以普通索引树会比主键索引树小很多但是数量是一样的也就是说遍历主键索引树和普通索引树得到的结果都是一样的。MySQL 就利用了这一特性在 InnoDB 中执行 select count(*) from table 语句时MySQL 优化器会找到最小的那棵索引树来遍历这样可能就可以减少加载次数在一定程度上提升了 count(*)的执行效率。
http://www.w-s-a.com/news/332262/

相关文章:

  • wordpress 媒体库管理自己的网站什么做优化
  • 网站建设基本流程价格厦门seo网站推广
  • 辽宁响应式网站建设价格企业所得税率
  • 网站编辑及seo招聘上海做网站公司做网站的公司
  • 杭州四喜做网站建设么ja.wordpress.org
  • 旅游网站策划书企业公司名字大全
  • 营销型网站的标准郑州新密网站建设
  • 建设网站的公司管理公司网站设计
  • 手机网站有什么区别是什么意思不让网站开发公司进入后台
  • 网站正在建设中_敬请期待做宠物店网站
  • 个体营业执照可以做网站服务吗宣传品牌网站建设
  • 做平台是做网站和微信小程序的好别邯郸捕风科技有限公司
  • 公司做哪个网站比较好巴顿品牌设计官网
  • 济宁北湖建设局网站我要推广
  • mc网站的建设大型网站开发
  • 给网站做推广一般花多少钱全国最大的外发加工网
  • linux 网站301江西seo推广方案
  • c2c电子商务网站定制开发wordpress html单页
  • 查询网站空间商自己做的网站如何放到微信
  • 现在网站开发哪个语言好月嫂公司网站建设构思
  • 腾讯云免费网站建设网站设计一级网页
  • 网站备案系统验证码出错的解决方案wordpress+论坛+注册
  • 代做毕设的网站先做网站先备案
  • 网站定制哪个好wordpress主题dux1.9
  • 怎么自己做网站地图网站建设弹窗代码
  • wordpress 作品集网站企业做网站建设的好处
  • 公司开发的网站健身网站开发项目总结
  • 怎样做游戏网站网站建设万首先金手指14
  • 英德建设局网站龙岩网上房地产网
  • wordpress vr网站电影网页设计尺寸