【问题标题】:MySQL best practice for archiving dataMySQL 归档数据的最佳实践
【发布时间】:2021-07-26 19:30:47
【问题描述】:

我有一个 120Go 数据库,其中包含 1 个特定的非常重的 80Go 表(存储数据自 +10 年以来)。

我想在存档中移动旧数据,但不知道这是否最好:

  • 将它们移动到同一数据库的新表中
  • 将它们移动到新存档数据库的新表中

从性能的角度来看会有什么结果?

1/ 如果我将表减少到只有 8Go 并将 72Go 从同一个数据库中移到另一个表中,数据库是否会运行得更快(我们不会通过读/写操作访问存档表,而 r/W 将在较轻的桌子上完成)。

2/ 将 72Go 的数据保存到存档表中无论如何都会减慢数据库引擎的速度?

3/ 将 72Go 数据放入另一个存档数据库与将 72Go 保存在主数据库的存档表中相比有什么好处?

感谢您的回答, 爱德华

【问题讨论】:

标签: mysql performance archive


【解决方案1】:

表的大小可能会也可能不会影响对该表的查询性能。这取决于查询、innodb_buffer_pool_size 和 RAM 大小。让我们看看一些典型的查询。

未使用的大表的存在对针对其他表的查询没有影响。

PARTITION BY RANGE TO_DAYS(...) 可能是明智的,也可能不是明智的,并且有每月或每年的分区。主要优点是您可以清除旧数据,但您似乎不需要这样做。

如果确实拆分为 72 + 8,我建议将 80 中的 8 复制到一个新表中,然后使用 RENAME TABLEs 来调整表名。

两个TABLEs 合二为一DATABASE 本质上与在不同DATABASEs 中具有TABLEs 相同。

当您提供更多详细信息后,我会更新此答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2013-06-30
    • 2021-08-22
    相关资源
    最近更新 更多