MySQL соединение быстро через MySQL Cli, но медленно с использованием PDO - PullRequest
1 голос
/ 19 сентября 2019

Моя база данных MySQL работает в Google Cloud.В нем применяется SSL, поэтому для подключения к нему используются сертификаты и ключи:

  • В командной строке я использую: mysql --ssl-ca=/path/to/server-ca.pem --ssl-cert=/path/to/client-cert.pem --ssl-key=/path/to/client-key.pem --host=ip-address --user=username --password
  • В случае PDO я использую *Параметры 1007 *, PDO::MYSQL_ATTR_SSL_CERT и PDO::MYSQL_ATTR_SSL_KEY для указания необходимых файлов.

Оба соединения работают нормально, за исключением того, что соединение PDO в PHP очень медленное.Методу CLI требуются миллисекунды для подключения и выполнения запросов, в то время как метод PDO занимает в 5-10 раз больше времени для того же количества соединений.Я пробовал оба метода с одной и той же машины, так что это не похоже на проблему с оборудованием или сетью.Может ли PDO вызывать проблемы здесь?

Я использую Laravel на случай, если это может иметь значение.

Обновление: вещи, которые я пробовал

  • Запустите любой другой PHP-скрипт (не включающий соединение MySQL) на том же сервере: очень быстро.
  • Запустите PHP-скрипт, который подключается к базе данных на 127.0.0.1 / localhost и выполняетзапрос: очень быстро.
  • Подключение и запрос с использованием MySQL CLI (как уже упоминалось в вопросе): очень быстро - хотя трудно проверить, насколько быстро я мог себе это представить.
  • Подключение изапрашивать PHP / PDO с разных компьютеров, используя все те же настройки: очень медленно, точно так же, как на исходном компьютере, на котором я его пробовал.

Так что единственное, что я еще не пробовал, это отключение SSL/ TLS.К сожалению, я не могу сделать это с этим экземпляром по соображениям безопасности.Кроме того, основываясь на том факте, что соединение SSL / TLS с использованием CLI очень быстрое, я пришел к выводу, что оно должно быть связано с чем-то специфичным для PHP или PDO.

Я собираюсь сделать несколькоотлаживаю себя и добавлю любые релевантные результаты, как только они появятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...