如何解释MySQL配置文件输出以调整外部MySQL服务器

时间:2011-05-09 19:47:49

标签: mysql performance drupal optimization innodb

我最近将Drupal站点升级到多webhead环境,并尝试使用InnoDB引擎调整MySQL。我注意到SELECT查询在生产上比在暂存时更快,但UPDATE查询生产速度较慢。

  • 暂存:在其上有LAMP堆栈的虚拟机上。
  • 生产:带负载平衡器的双网头。专用的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   |
+----------------------+----------+------------+

1 个答案:

答案 0 :(得分:1)

你在赚钱。 “结束”状态将包括二进制日志记录。

  

对于最终状态,以下内容   可能正在发生行动:

     
      
  • 更改表中的数据后删除查询缓存条目
  •   
  • 将事件写入二进制日志
  •   
  • 释放内存缓冲区,包括blob
  •   

http://dev.mysql.com/doc/refman/5.5/en/general-thread-states.html