我正在从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上查询这么慢?我究竟做错了什么?
还有其他插件可以使用吗?
答案 0 :(得分:0)
看一下php.ini的max_execution_time值。在从PHP查询时,您的查询没有理由变慢,您可能正在尝试一次显示所有数据。