postgresql pdo非常慢连接

时间:2013-10-30 13:18:36

标签: php performance apache postgresql pdo

我们的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已关闭(我已经在之前的搜索中检查过此主题的选项。)

@Daniel:我已经测试过intel core 2 Extreme CPU X9100 @ 3.06Ghz 4Gb RAM

1 个答案:

答案 0 :(得分:1)

将主机留空,尝试使用unix域套接字。它的速度要快一点。