2
<?php
$c = pg_connect($connectionString, PGSQL_CONNECT_FORCE_NEW);
$queries = array (
"SELECT COUNT(*) AS data FROM articles",
"SELECT * FROM posts WHERE visible = TRUE",
"SELECT * FROM countries WHERE visible = FALSE",
"SELECT * FROM types WHERE visible = TRUE"
);
foreach ($queries as $query) {
$res = @pg_query($c, $query);
if (empty($res)) {
echo "[ERR] " . pg_last_error($c) . "\n";
} else {
echo "[OK]\n";
}
}
的上面的代碼段中生成的第一次這樣的:PostgreSQL的查詢高速緩衝 - 關閉連接意外
[OK]
[OK]
[OK]
[OK]
但對於第二次:
[OK]
[OK]
[ERR] server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
[ERR] server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
這意味着一些緩存查詢會導致問題。我們試圖改變quires的順序,但它沒有幫助。只有像SELECT 1+8
這些可能未被緩存的簡單查詢總是運行良好。
類似的問題可以使用psql和可能的任何其他語言驅動程序(不僅僅是PHP)來模擬。
當我們安裝了PostgreSQL Query Cache時,所有的麻煩都出現了。
查詢緩存應該配置不知何故不以這種方式?
我們的配置文件所在的位置: http://pastebin.com/g2dBjba0 - pcqd_hba.conf http://pastebin.com/X9Y3zrjx - pcqd.conf
'PostgreSQL'或'Postgres'縮寫。沒有「Postgre」。 [更多這裏](http://wiki.postgresql.org/wiki/Postgres)。 – 2011-12-21 22:10:51
您是否嘗試過使用PDO pgsql驅動程序? – Kenaniah 2011-12-22 01:12:58
正如我所說,即使使用原始的psql(PostgreSQL的shell工具),它的行爲也是一樣的。我使用哪個驅動程序並不重要。 – 2011-12-22 07:59:44