我有一个简单的SELECT * From tv Where Client = 'ABCD'
查询,当我做一个EXPLAIN EXTENDED
,它给了我两个不同的结果。执行查询时,其中一个需要几毫秒,而另一个则需要大约 3 秒。为什么它会给出两个不同的解释结果以及导致缓慢的原因是什么?
慢查询:
快速查询:
Q为什么同一个查询会产生 2 个不同的 MySQL 解释结果?
A因为有些东西是不同的。如果不在查询中,则在两个表或数据库实例之间。
所有这些都应该进行审查,以找出差异:
- 它们是否在相同版本的 MySQL 上运行(
SHOW VARIABLES LIKE '%version%'
)
- 实例是否运行相同的字符集(
SHOW [GLOBAL] VARIABLES LIKE 'character_set%'
)
- 表列是否使用相同的字符集(
SHOW CREATE TABLE
)
- 两个表使用相同的存储引擎吗? (
SHOW CREATE TABLE
)
- 如果主键是复合键,则列的顺序是否相同(
SHOW CREATE TABLE
)
- 统计数据是最新且准确的吗?
- 由于大量插入、更新、删除活动,其中一张表是否存在碎片?
- 两台服务器上的 MyISAM 键缓存或 InnoDB 缓冲区大小是否相同?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)