💡
原文英文,约3700词,阅读约需14分钟。
📝
内容提要
本文讨论了MySQL中SELECT COUNT(*) FROM TABLE查询速度慢的原因,包括明显和不明显的因素。明显的原因有表大小、存储引擎和并发工作负载,不明显的原因有MySQL变体和版本、事务上下文和表碎片化。文章还提到了MySQL和MariaDB版本之间的差异以及不同事务上下文中查询速度的差异。此外,还讨论了MySQL 8.0中并行读取线程和数据文件创建方式对查询结果的影响。总的来说,事务上下文对查询速度有重要影响,需要仔细考虑。
🎯
关键要点
-
SELECT COUNT(*) 查询速度慢的原因包括明显和不明显的因素。
-
明显的原因有表大小、存储引擎、并发工作负载和内存缓存与磁盘读取的差异。
-
不明显的原因包括 MySQL 变体和版本、事务上下文、表碎片化、并行读取和表优化。
-
MySQL 和 MariaDB 版本之间存在差异,不同事务上下文中查询速度也不同。
-
MySQL 8.0 中的并行读取线程和数据文件创建方式对查询结果有影响。
-
事务上下文对查询速度有重要影响,特别是在存在未提交数据时。
-
不同版本的 MySQL 和 MariaDB 在处理相同查询时表现差异显著。
-
MySQL 5.7 版本在某些上下文中表现较慢,而 MySQL 8.0 在某些版本中也存在性能回归。
-
MariaDB 的新版本在存在撤销日志条目时查询速度较慢。
-
MySQL 8.0.20 及以后的版本在并行读取时可能导致更多的磁盘读取,影响查询性能。
➡️