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

商城网站建设招聘动漫主题网页设计

商城网站建设招聘,动漫主题网页设计,wordpress自定义上传图片,网店运营实训报告总结统计一张表的总数量#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.yingshimen.cn/news/135990/

相关文章:

  • 广告位网站建设定制网站建设广告
  • 网站关键词在线优化重庆网站推广什么
  • 免费如何创建网站平台网页界面设计中表单的组成部分有那四种
  • 去网站做dnf代练要押金吗聊城网站建设代理商
  • 建站网站模板下载爱站seo工具包
  • 绿色企业网站保定模板建站哪家好
  • 常州专业网站建设公司咨询淘宝优惠券网站怎么做的
  • 互联网站账户e服务平台天津搜索引擎推广
  • 重庆网站建设联系电话万维网的代表网站
  • 有没有什么推荐的网站专业做外贸网站的公司
  • 建设网站需要的关键技术园林企业建设网站
  • 做网站设计的价格做二手平台公益的网站
  • 全球建筑网站德清县城乡建设局网站
  • 互联网网站设计工业软件公司排名
  • 开发一个app要多久贵州seo排名
  • 用shopify 做网站江华网站建设
  • 网站建设调研提纲住建局网站信息化建设
  • 大连建设网节能办公室网站电脑网页设计培训
  • 怎么做网站需求分析二建证从住房建设厅网站调出流程
  • 嘉兴 网站建设视频网站备案怎么做
  • 怎呀做网站长沙有实力seo优化公司
  • 容城县建设银行网站网站建设的优缺点
  • 新余网页制作公司推动防控措施持续优化
  • 山西免费网站建设深圳php网站开发
  • 北京网站建设定制网站开发可选择的方案有哪些
  • 效果型网站建设湘潭建设路街道网站
  • 上海哪家公司做网站好免费制作视频的软件手机版
  • 营销型网站具备的二大能力德洲网站建设
  • 如何在网站做投票电商网站建设技术交流问题
  • 顺德品牌网站建设公司购物网站平台建设