MySQL 5.7下InnoDB对COUNT(*)的优化
2018-01-30 19:14
597 查看
在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
执行计划显示: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
相关文章推荐
- MySQL 5.7下InnoDB对COUNT(*)的优化
- 关于mysql中innodb的count优化问题分享
- 关于mysql中innodb的count优化问题分享
- 在MySQL的InnoDB存储引擎中count(*)函数的优化
- MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
- MySQL优化之COUNT()效率
- Mysql Innodb 引擎优化 参数(innodb_buffer_pool_size)
- mysql InnoDB的count(*)
- MySQL MyISAM与Innodb优化方案比较
- 【mysql】关于InnoDB存储引擎 text blob 大字段的存储和优化
- 范堡 mysql innodb引擎的优化方法
- MYSQL-innodb性能优化几个点
- MySQL Study之--MySQL InnoDB存储引擎的参数详解及优化
- mysql 5.7中关于count(*)的优化
- Mysql MyISAM InnoDB 优化
- mysql优化(基本类型表MyISAM和InnoDB)
- mysql innodb 优化 参数篇
- Mysql查询优化——中间表方法优化count()统计大数据量总数问题
- MySQL Server参数优化 - innodb_file_per_table(独立表空间)
- MySQL MyISAM/InnoDB高并发优化经验