我有两个 mysql 5.1 实例(比如 A、B)托管相同的数据库架构。如果我在两个实例上运行(使用 mysql 工作台)相同的查询,我不明白为什么我在后续请求中得到非常不同的响应时间。
在实例 A 上,第一次查询执行需要 0.688 秒,第二次查询执行需要 0.683 秒
在实例 B 上,第一次查询执行需要 0.688 秒,第二次查询执行需要 0.027 秒
看起来两个实例之间存在缓存配置差异,但我找不到它。
比较SHOW VARIABLES两个实例的结果只给出了几个不同的值(我看不出它们如何影响查询执行时间):
general_log_file :
/path/to/file2.log VS /path/to/file1.log
hostname :
mysql2 VS mysql1
pid_file :
/var/lib/mysql/mysql2.pid VS /var/lib/mysql/mysql1.pid
slave_max_allowed_packet :
1073741824 VS (empty)
slow_query_log_file :
/var/lib/mysql/mysql2-slow.log VS /var/lib/mysql/mysql1-slow.log
system_time_zone :
CET VS CEST
timestamp :
1352219171 VS 1352219229
version :
5.1.66-0ubuntu0.10.04.1 VS 5.1.62-0ubuntu0.10.04.1
Run Code Online (Sandbox Code Playgroud)
顺便提一下,实例A是我们的测试环境,实例B是我们的生产环境
编辑:(@Rick James 推荐)
以下变量在两种环境中严格相同
SHOW VARIABLES LIKE '%buffer%'
bulk_insert_buffer_size 8388608
innodb_buffer_pool_size 8388608 …Run Code Online (Sandbox Code Playgroud)