Отладка подключения MySQL
Я пытаюсь выяснить, как диагностировать проблему подключения MySQL.
- Когда я запускаю группу запросов локально на моем компьютере, это занимает около 1 с.
- Когда я выполняю ту же группу запросов на компьютере AWS, имеющем экземпляр mysql с поддержкой RDS, это занимает примерно в 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)