Php 加快新闻稿脚本的外部联接查询
我有一个PHP脚本,它可以将新闻稿发送到一堆电子邮件地址,每小时发送15000份新闻稿,直到所有电子邮件地址都被处理完毕 因为这个过程不是一次性运行的,所以我有一个表,在其中我注册了所有已邮寄的地址,所以我总是可以轻松地获得未邮寄的地址 以下是我所做工作的简化示例:Php 加快新闻稿脚本的外部联接查询,php,sql,mysql,Php,Sql,Mysql,我有一个PHP脚本,它可以将新闻稿发送到一堆电子邮件地址,每小时发送15000份新闻稿,直到所有电子邮件地址都被处理完毕 因为这个过程不是一次性运行的,所以我有一个表,在其中我注册了所有已邮寄的地址,所以我总是可以轻松地获得未邮寄的地址 以下是我所做工作的简化示例: select a.* from email_all a left outer join email_send s on s.email_id = a.id and s.mailing_id = 1
select a.*
from email_all a left outer join email_send s
on s.email_id = a.id
and s.mailing_id = 1
where s.id IS null
limit 0, 15000
因此,所有尚未发送邮件的地址都被选中,现在的问题是,发送的新闻稿越多,“email_send”表中记录的地址越多,查询速度就越慢。起初,在“email\u all”表中有50000个地址,而在“email\u send”表中没有地址,几天后,在“email\u all”表中还有50000个地址,在“email\u send”表中也有50000个地址,然后所有的地址都会丢失。这些脚本非常适用于较小的邮件,如10.000
我在第二个表的“email_id”列上放置了一个索引,主键已经设置好了
还有什么我可以加快速度的吗?我也使用了“不存在于”,但这无助于:(
有人能帮忙吗
谢谢
史蒂夫你为什么不反过来说呢:
- 使用队列创建一个大表
- 从发送数据的表中删除每一行