使用PHP的Postgres查询需要太长时间

时间:2013-03-08 16:20:24

标签: php performance postgresql

 SELECT a.COL1, a.COL2, b.COL3 ,
 a.COL4, e.COL1 , e.COL5,  e.COL6,
 e.COL7, a.COL8,b.COL9, b.COL10 , a.COL11,
 f.COL12 FROM TABLE1 a, TABLE2 b
 TABLE3 c, TABLE4 d, TABLE5 e, TABLE6 f 
 WHERE a.COL1=b.COL1 and a.COL2=c.COL2 and c.COL3=d.COL3 and d.COL5='2'
 ORDER BY date(a.COL8) DESC, a.COL2 desc, a.COL1

使用PGAdmin或Navicat直接在数据库上执行上面的查询返回570结果并在不到一秒的时间内完成。但是当通过pg_query执行时,它需要大约40(!)秒。

有谁知道这是为什么?

1 个答案:

答案 0 :(得分:2)

事实证明答案很奇怪。我正在使用由其他人在过去的某个时间编写的函数提供的连接...原来它正在使用

pg_query($db_platform, "set enable_seqscan=false");

难怪在使用该连接时查询被破坏了。