Postrgresql查询仅从PHP的pg_query中缓慢

时间:2015-07-23 15:15:42

标签: php postgresql

我正在从PHP到PostgreSQL进行查询,而且速度非常慢。 查询是SELECT *, CAST(data->>'created_at' as timestamp) as fecha FROM gorda_lipo.tweets WHERE idusuario = 125379829 LIMIT 20
在PHPpgadmin上它只用了21.172毫秒,但如果我尝试用pg_query(the connection, the query)对PHP进行查询,则查询会因超时而被取消,如果我尝试使用SELECT pg_cancel_backend(pid);手动取消它这需要一分多钟。

如果我再提出一个问题 SELECT *, CAST(data->>'created_at' as date) as fecha,CAST(data->>'id' as BIGINT) as idusuario FROM gorda_lipo.usuarios WHERE CAST(data->>'id' as BIGINT) = (SELECT *from (SELECT CAST(data->>'id' as BIGINT) FROM gorda_lipo.usuarios LIMIT 50) t ORDER BY random() LIMIT 1)
它工作正常。我假装将结果用于第一个查询的idusuario,但即使我使用数字也不行。


为什么使用pg_query在PHP上查询这么慢?我究竟做错了什么? 还有其他插件可以使用吗?

1 个答案:

答案 0 :(得分:0)

看一下php.ini的max_execution_time值。在从PHP查询时,您的查询没有理由变慢,您可能正在尝试一次显示所有数据。

http://php.net/manual/en/info.configuration.php

http://php.net/manual/en/function.set-time-limit.php