我们的Web服务器面临性能问题。我们正在使用apache服务器(2.4.4)和php 5.4.14(它是一个uniserver包)和一个postgresql数据库9.2。它位于Windows系统上(可以是XP,7或服务器......)。
问题是来自Web服务器的请求答案太慢了;我们进行了一些分析,发现数据库连接大约是 20 ms (毫秒)。 我们正在使用这样的PDO:
$this->mConnexion = new \PDO(“postgres: host=127.0.0.1;dbname=”, $pUsername,$pPassword, array(\PDO::ATTR_PERSISTENT => false));
我们已经做了一些这样的时间分析:
echo "Connecting to db <br>";$time_start = microtime();
$this->mConnexion = new \PDO(…
$time_end = microtime();$time = $time_end - $time_start;
echo "Connecting to db done in $time sec<br>";
我们已经对ATTR_PERSISTENT进行了测试,我们提出了更快的连接时间。代码报告连接时间 = 2. E-5秒(而 0.020 s ,持久性为false)。
20毫秒是正常值(我们必须转移到持久连接)?
我们还使用mysql进行了测试,非持久连接的连接时间约为2毫秒。
我们在postgresql配置文件中设置了这些选项:
listen_addresses = '*'
port = 5432
max_connections = 100
SSL = off
shared_buffers = 32MB
修改
我们不使用永久(尚),因为有一些缺点,如果脚本失败连接将处于不良状态(所以我们将不得不管理这些情况,这是我们将要做的......)。在直接切换到持久连接之前,我想有更多关于此数据库连接时间的观点。
要回答DanielVérité的问题,SSL已关闭(我已经在之前的搜索中检查过此主题的选项。)
答案 0 :(得分:1)
将主机留空,尝试使用unix域套接字。它的速度要快一点。