【发布时间】:2011-05-09 19:47:48
【问题描述】:
我最近将一个 Drupal 站点升级到多 webhead 环境,并尝试使用 InnoDB 引擎调整 MySQL。我注意到 SELECT 查询在生产中比在暂存时更快,但 UPDATE 查询在生产中较慢。
- 暂存:在带有 LAMP 堆栈的虚拟机上。
- 生产:带负载平衡器的双 webhead。专用 MySQL 服务器和第二个热备用数据库服务器。
我的系统管理员告诉我延迟是由于 1) 远程数据库连接和 2) 用于两个数据库服务器之间数据复制的二进制日志记录。
我是 InnoDB 和多服务器环境的新手。我想看看 MySQL 配置文件的输出是否证实了我的服务器设置,或者是否还有进一步优化生产 MySQL 服务器的空间。
这是我从登台和生产数据库中运行的。我并排修改了带有数字列的输出以进行比较。请注意,除了状态为“end”的行之外,该查询在表中每一行的生产中运行得更快。是执行二进制日志记录的“结束”阶段吗?
mysql> SET profiling = 1;
mysql> UPDATE node SET created = created + 1 WHERE nid = 100;
mysql> SHOW profile;
+----------------------+----------+------------+
| Status | Staging | Production |
+----------------------+----------+------------+
| starting | 0.000100 | 0.000037 |
| checking permissions | 0.000014 | 0.000006 |
| Opening tables | 0.000042 | 0.000017 |
| System lock | 0.000007 | 0.000004 |
| Table lock | 0.000009 | 0.000003 |
| init | 0.000076 | 0.000030 |
| Updating | 0.000062 | 0.000022 |
| end | 0.000031 | 0.002159 |
| query end | 0.000006 | 0.000003 |
| freeing items | 0.000010 | 0.000003 |
| closing tables | 0.000009 | 0.000002 |
| logging slow query | 0.000005 | 0.000001 |
| cleaning up | 0.000004 | 0.000001 |
+----------------------+----------+------------+
| Total | 0.000385 | 0.002288 |
+----------------------+----------+------------+
【问题讨论】:
标签: mysql performance drupal optimization innodb