MySQL5.7下InnoDB对COUNT(*)的优化

在MySQL 5.7 COUNT()会选择聚集索引,进行一次内部handler函数调用,即可快速获得该表总数

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了天柱免费建站欢迎大家使用!

执行计划显示:Extra:Select tables optimized away

5.7以前的版本中,COUNT()请求通常是:扫描普通索引来获得这个总数。
6.执行计划显示: Extra:Using index

如果聚集索引较大(或者说表数据量较大),没有完全加载到buffer pool中的话,MySQL 5.7的查询方式有可能反而会更慢,还不如用原先的方式(MySQL 5.6)
解决办法:强制走普通索引,不过还需要加上WHERE条件,否则还是不行
select count() from stock force index(idx_stock) where id >0;
extra:using where,using index


新闻标题:MySQL5.7下InnoDB对COUNT(*)的优化
网站路径:http://hxwzsj.com/article/pieoej.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 达州网站设计 成都网站设计 温江网站设计 成都网站建设 响应式网站设计 成都定制网站建设 成都h5网站建设 成都网站建设 手机网站建设 营销型网站建设 成都网站建设 手机网站建设套餐 成都定制网站建设 四川成都网站建设 专业网站设计 企业手机网站建设 网站建设推广 成都网站制作 营销型网站建设 重庆网站建设 四川成都网站制作 企业网站建设