我需要防止查询时间呈指数级增长,目前大多数模块的查询时间都在7-11秒之间。
事实是,与任何旧数据相比,访问上个月输入数据的概率要高得多。所以我认为基于数据输入时间的数据分区应该能够控制查询时间。那么我怎样才能做到这一点。
具体来说,我想要一种方法来缓存上个月的数据,以便每个查询在具有最新数据的表中搜索产品,并且如果在最后一个数据中找不到,则应搜索其余数据。 1个月的数据。
答案 0 :(得分:0)
如果您想使用MySQL的分区功能,请查看this article。
话虽如此,使用分区时有一些限制:
您还可以通过定期将旧记录移动到存档表来手动处理分区。当然,您还必须实现不同的代码来读取这些存档的记录。
另请注意,您的查询时间似乎很长。我使用的表格远远超过200万条记录,访问时间要长得多。