唉,事实证明Rawdreeg部分正确。我制作了一个 20 行的 PHP 脚本来分析连接到我的 MySQL 服务器所需的时间:
<?php
$time = microtime(true);
$con = new PDO(...);
$connect_time = microtime(true);
$result = $con->query('SHOW TABLES');
$query_time = microtime(true);
var_dump($result->fetchAll(PDO::FETCH_ASSOC));
$time_con = ($connect_time - $time) * 1000;
$time_query = ($query_time - $connect_time) * 1000;
echo "Connection took $time_con ms\n";
echo "Query took $time_query ms\n";
输出是:
连接耗时 230.18503189087 毫秒
查询耗时 64.532995223999 毫秒
这完美地填补了 Symfony profiler 的空白。好消息是,当我的应用程序上线时,它将通过套接字本地连接到 MySQL 服务器,所以它可能会非常快!但是,除了在本地镜像 MySQL 服务器之外,我对开发过程中的速度几乎无能为力。
所以总结一下答案;Symfony 防火墙最初创建与 MySQL 数据库的连接,在我的情况下,该连接非常慢。就我而言,MySQL 连接时间占防火墙分析时间的 80% 以上。
注意:我已经通过 IP 地址连接到 MySQL 服务器,并且我已经添加skip-name-resolve
到 MySQL 配置中无济于事。