PostgreSQL查询速度极慢



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

相关内容

  • 没有找到相关文章

最新更新