【发布时间】:2018-04-21 11:21:23
【问题描述】:
我们有一个包含 200 万条记录的表,并以每分钟 30 条记录的速度插入新行。
表结构为: |投诉 |手机 |请求日期时间| .我们收到投诉、用户的手机和当前日期,并将其保存在此表中。我们可以在这个表中有多行具有相同的移动设备。
只有在过去 30 天内来自同一“手机”的请求少于 12 个时,我们才需要保存新记录。我们在这里使用三种方法来计算特定移动设备的记录数:
- 每次插入新记录之前,首先在数据库中运行聚合查询以检查我们是否已经有 12 条具有该数量的记录。如果是,请不要插入新的。这里的问题是查询的性能。
- 或在一天结束后存储此数据,即过去 29 天内具有相同手机号码的行在表中,仅在当天运行聚合,然后将两者相加以检查其是否小于 12。
或者有人可以为此提出更好的解决方案吗?
【问题讨论】:
标签: mysql performance database-design database-performance