我有一个实时服务器和我的开发服务器,我发现我的实时(不是开发)服务器上的查询运行速度慢了 10 倍,即使实时服务器更强大并且它们都运行相当的负载。这不是数据库结构的事情,因为我将备份从实时服务器加载到我的开发服务器中。
有人对我可以在哪里寻找差异有任何想法吗?它可能是一个 MySQL 配置的东西吗?我应该从哪里开始寻找?
直播服务器:
mysql> SELECT count(`Transaction`.`id`) as count, sum(`Transaction`.`amount`) as sum, sum(Transaction.citiq_margin+rounding + Transaction.citiq_margin_vat) as income FROM `transactions` AS `Transaction ` LEFT JOIN `meters` AS `Meter` ON (`Transaction`.`meter_id` = `Meter`.`id`) LEFT JOIN `units` AS `Unit` ON (`Meter`.`unit_id` = `Unit` .`id`) WHERE (NOT (`Unit`.`building_id` IN ('1', '85')) AND NOT (`Transaction`.`state` >= 90)) AND DAY(`Transaction`.` created`) = DAY(NOW()) AND YEAR(`Transaction`.`created`) = YEAR(NOW()) AND (MONTH(`Transaction`.`created`)) = MONTH(NOW()); +-------+---------+---------+ | 计数 | 总和 | 收入 | +-------+---------+---------+ | 413 | 3638550 | 409210 | +-------+---------+---------+ 一组中的 1 行(2.62 秒) [root@mises ~]# 正常运行时间 17:11:57 55 天,1 分钟,1 个用户,平均负载:0.45、0.56、0.60
开发服务器(由于备份的轻微时间延迟,结果计数不同):
mysql> SELECT count(`Transaction`.`id`) as count, sum(`Transaction`.`amount`) as sum, sum(Transaction.citiq_margin+rounding + Transaction.citiq_margin_vat) as income FROM `transactions` AS `Transaction ` LEFT JOIN `meters` AS `Meter` ON (`Transaction`.`meter_id` = `Meter`.`id`) LEFT JOIN `units` AS `Unit` ON (`Meter`.`unit_id` = `Unit` .`id`) WHERE (NOT (`Unit`.`building_id` IN ('1', '85')) AND NOT (`Transaction`.`state` >= 90)) AND DAY(`Transaction`.` created`) = DAY(NOW()) AND YEAR(`Transaction`.`created`) = YEAR(NOW()) AND (MONTH(`Transaction`.`created`)) = MONTH(NOW()); +-------+---------+---------+ | 计数 | 总和 | 收入 | +-------+---------+---------+ | 第357章 3005550 | 338306 | +-------+---------+---------+ 1 行一组(0.22 秒) [www@smith 测试]$ 正常运行时间 18:11:53 12 天,1:57,4 个用户,平均负载:0.91、0.75、0.62
Live Server(2 x Xeon Quadcore):
处理器:7 vendor_id : 正版英特尔 CPU系列:6 型号:44 型号名称:Intel(R) Xeon(R) CPU E5620 @ 2.40GHz 步进:2 中央处理器兆赫:2395.000 缓存大小:12288 KB 物理ID:0 兄弟姐妹:8 核心编号:10 CPU核心数:4
开发服务器(1 个四核)
处理器:3 vendor_id : 正版英特尔 CPU系列:6 型号:23 型号名称:Intel(R) Core(TM)2 Quad CPU Q8300 @ 2.50GHz 步进:10 微码:0xa07 中央处理器兆赫:1998.000 缓存大小:2048 KB 物理ID:0 兄弟姐妹:4 核心编号:3 CPU核心数:4
直播服务器:
- CentOS 5.7
- MySQL 版本 5.0.95
开发服务器:
- ArchLinux
- MySQL 版本 5.5.25a