将大型MySQL表拆分为多个文件?

时间:2018-08-21 21:12:10

标签: mysql database

我正在管理一个带有几个大表(> 500 GB x 4个表)的MySQL服务器。这些表均具有相似的属性:

  • 所有表都有一个timestamp列,该列是主键的一部分
  • 从不删除它们
  • 它们仅在插入后短时间内更新
  • 大多数读取发生在过去一年中插入的行
  • 很少但偶尔会读较长的书

我们已有数年的历史记录(行),并且我们累积行的速度正在加快。现在,这些表都以每个磁盘一个文件的形式存储在磁盘上。我们开始在主机上用完磁盘,并且尽管我们可以购买更多磁盘空间,但我还是希望有一种可伸缩的策略来处理不断增长的数据。

由于较旧的记录从未写入且很少更新,因此我希望可以使用timestamp列将这些大表散布在多个文件中,以分隔记录。与记录超过一年的记录对应的所有文件,我想保留在网络文件共享中。这样,它们仍可用于服务器,并且我们可以限制1岁以下数据在本地所需的磁盘量。

通过将表拆分成多个文件,我对美好的事物(tm)有了更多的希望,但让我们留在那儿吧。

然后的问题是

  1. 这是个好主意吗?
  2. 如何在MySQL中做到这一点?我愿意接受其他存储技术。

编辑:如果这种方法不是一个好主意,那么有哪些替代方案可以满足避免单主机存储限制并保持数据库客户端可访问完整数据集的双重目标? < / p>

0 个答案:

没有答案