我在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。