【发布时间】:2011-11-04 07:30:27
【问题描述】:
我必须在 CRON 上工作,它将每周在订阅者订阅之日向订阅者发送电子邮件。例如,如果用户 A 在星期四订阅,用户 B 在星期三订阅,那么用户 A 将在每个星期四收到邮件,用户 B 在每个星期三收到邮件。
现在我的方法如下:
1- 首先获取当前(TODAY)日期的星期几并赋值给变量
2- 运行 SELECT 查询并获取订阅日与今天日期相似的所有订阅者 ID。我打算使用 MYSQL 的 dayofweek() 从 Week 中提取一天,
3- 获得所有 ID 后,然后通过电子邮件将最近 7 天的活动发送给这些订阅者。
让我有点困惑的是 DAYOFWEEK() 函数,它基于列并且看起来很昂贵。你会建议什么替代方案?(假设表格会有很多数据)
【问题讨论】:
-
您现在是否遇到任何性能问题?
-
这是一个经典的计算存储权衡。您想在每次查询时计算 dayofweek(),还是想计算一次并将其存储在表中?正如上校所说,如果您现在没有遇到性能问题,请不要在表中包含重复数据:计算每次传递的星期几。如果您遇到问题,可以选择去规范化。
-
该系统目前处于开发阶段,但该系统是一个成员超过 400 万的大型数据库的一部分,我正在考虑这一点
标签: php mysql query-optimization