[英]PostgreSQL query extremely slow
我在PostgreSQL数据库中有一个表: temp
有4列
(
id int,
campaign character varying,
sender character varying,
date_s date
)
已经有大约900万条记录。 目前没有索引。
问题是当我尝试执行以下操作时:
SELECT COUNT(*)
FROM temp
WHERE
id = $idmail and
campaign = '$variable_campaign' AND
date > '$date_c' "
在100K循环中。
查询没有响应。 (我在PHP中设置了一个无限制的set_time_limit,否则在5分钟内会出现500错误)
实际上,所有这些查询的目的都是为了获取相关活动在当前一周内未发送到的邮件列表。
请问您有什么想法,因为我真的不知道该怎么做!
如果查询无法执行,我可以做一种临时文件,但我更喜欢处理数据库,这更干净!
假设有一个具有id
主键的mails
表:
select id
from
temp t
right join
mails m using(id)
where
t.campaign = '$variable_campaign' and
t.date > '$date_c' and
t.id is null
它将返回所有未发送的邮件ID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.