我有一个很大的表(大约400万条目)用于Django应用程序发送的电子邮件。它越多,查询就越慢。我提出了这个想法来推动超过3个月的参赛作品。
有人可以就此实施提出任何建议吗?
感谢。
答案 0 :(得分:3)
只需在数据库中创建另一个表,然后在那里移动消息。例如:
在MySQL中运行CREATE TABLE emails_archive LIKE emails;
。
然后把这份工作交给每日cron:
INSERT INTO emails_archive (SELECT * FROM emails WHERE sent_at < DATE_SUB(NOW(), 1 MONTH));
DELETE FROM emails WHERE sent_at < DATE_SUB(NOW(), 1 MONTH));
就是这样!