调试 mysql 连接

调试 mysql 连接

我正在尝试弄清楚如何诊断 mysql 连接问题。

  • 当我在我的机器上本地运行一组查询时,大约需要 1 秒才能运行。
  • 当我在具有 RDS 支持的 mysql 实例的 AWS 机器上运行同一组查询时,运行时间大约是 8 倍,为 8 秒。两台机器的大小大致相当。

这里有两个问题:

  • 我该如何诊断问题所在?问题不在于查询或数据库,因为这两种情况都一样。例如,我可以使用哪些工具或命令来查明可能的问题?
  • 有哪些方法可以加快从我的 ec2 服务器到 rds 服务器的连接速度?我的印象是,rds 支持的实例在速度上与服务器上的数据库相对相同(如果不是更快的话)。

答案1

您应该使用分析功能。

set profiling=1;

然后在同一会话中执行查询。然后查找个人资料:

show profiles;

并显示它们:

show profile for query X;,其中 X - 是轮廓数。

mysql> show profile for query 2;
+--------------------------------+----------+
| Status                         | Duration |
+--------------------------------+----------+
| starting                       | 0.000042 |
| Waiting for query cache lock   | 0.000011 |
| init                           | 0.000008 |
| checking query cache for query | 0.000081 |
| checking permissions           | 0.000017 |
| Opening tables                 | 0.000143 |
| init                           | 0.000038 |
| System lock                    | 0.000021 |
| optimizing                     | 0.000020 |
| executing                      | 0.000021 |
| end                            | 0.000013 |
| query end                      | 0.000010 |
| closing tables                 | 0.000027 |
| freeing items                  | 0.000082 |
| cleaning up                    | 0.000198 |
+--------------------------------+----------+
15 rows in set, 1 warning (0.00 sec)

相关内容