我有一个优化问题。
我最近开始使用的PHP Web应用程序在MySQL数据库中有几个大型数据库表。为了商业目的,这些表中的信息应始终可访问,这使得它们最终变得非常大。
这些表定期写入,并且经常选择最近的记录。
以前的开发人员提出了一种非常奇怪的优化系统的做法。他们创建了单独的数据库来存储最近的记录,以便在记录增长时保持表格紧凑并同步表格#34; old" (超过24小时)。
在执行SELECT查询时,应用程序使用当前日期来选择正确的数据库。
在我看来,这是一个非常奇怪的解决方案。我们对此有一个很大的争论,我希望改变这一点。但是,在此之前,我决定问:
1)有人曾经遇到过类似的事吗?我的意思是,为最近的记录分开数据库。2)针对这种特殊情况优化数据库的最常见做法是什么?
欢迎提出任何意见,因为目前有很多方法可以解决。
答案 0 :(得分:1)
答案 1 :(得分:0)
我相信这可以帮助你RANGE Partitioning
答案 2 :(得分:0)
解决方案是在日期范围内对表格进行分区。 通过将较大的表拆分为较小的单个表,只能访问一小部分数据的查询可以更快地运行,因为要扫描的数据较少。维护任务(例如重建索引或备份表)可以更快地运行。
Mysql的文档可能很有用,请查看: https://dev.mysql.com/doc/refman/5.5/en/partitioning-columns-range.html