2

我们有一个数据库,其中包含与时间相关的数据。正如您可以想象的那样,它会随着时间的推移而增长(并减慢)。当前(本月)数据有 50% 的读取和 25% 的插入和 25% 的更新操作,旧数据的读取率为 100%。

  • 好消息是,旧数据也变得不那么重要了。
  • 不好的是,有时我们需要查询从现在到去年的整个时期。

现在我想要一个 mysql 架构,它比旧的数据更快地为年轻的数据提供服务。

有没有办法在mysql中做到这一点?


post scriptum:当然,由于我们正在使用 ruby​​ on rails 和应用层中的活动记录,我们可以轻松地重写活动记录基类以访问多个表并将旧数据移动到另一个表。但是因为我们也读过其他系统的查询,比如reporting,应该可以访问新旧数据,有时同时访问,我想在mysql上解决。

4

2 回答 2

3

MySQL 分区非常适合您。它确实要求您使用 5.1。

于 2009-10-08T16:51:51.367 回答
1

我会将表拆分为(至少)2 个表,并将当前数据存储在一个表中,并将存档数据存储在另一个表中。然后使用 MySql 视图创建一个“虚拟”表,当需要所有数据时可以使用该表,否则,直接使用实际表访问所需的数据。

于 2009-10-08T16:55:54.040 回答