优化:大型MySQL表,仅使用最近的记录

时间:2016-03-30 10:22:57

标签: php mysql database

我有一个优化问题。

我最近开始使用的PHP Web应用程序在MySQL数据库中有几个大型数据库表。为了商业目的,这些表中的信息应始终可访问,这使得它们最终变得非常大。

这些表定期写入,并且经常选择最近的记录。

以前的开发人员提出了一种非常奇怪的优化系统的做法。他们创建了单独的数据库来存储最近的记录,以便在记录增长时保持表格紧凑并同步表格#34; old" (超过24小时)。

在执行SELECT查询时,应用程序使用当前日期来选择正确的数据库。

在我看来,这是一个非常奇怪的解决方案。我们对此有一个很大的争论,我希望改变这一点。但是,在此之前,我决定问:

1)有人曾经遇到过类似的事吗?我的意思是,为最近的记录分开数据库。

2)针对这种特殊情况优化数据库的最常见做法是什么?

欢迎提出任何意见,因为目前有很多方法可以解决。

3 个答案:

答案 0 :(得分:1)

尝试使用INDEX:

CREATE INDEX

改善信息的访问,使用和部署。

答案 1 :(得分:0)

我相信这可以帮助你RANGE Partitioning

答案 2 :(得分:0)

解决方案是在日期范围内对表格进行分区。 通过将较大的表拆分为较小的单个表,只能访问一小部分数据的查询可以更快地运行,因为要扫描的数据较少。维护任务(例如重建索引或备份表)可以更快地运行。

Mysql的文档可能很有用,请查看: https://dev.mysql.com/doc/refman/5.5/en/partitioning-columns-range.html