我正在尝试弄清楚如何诊断 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)