首页 > 解决方案 > MySQL 归档数据的最佳实践

问题描述

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

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

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

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

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

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

谢谢你的回答,爱德华

标签: mysqlperformancearchive

解决方案


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

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

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

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

二合一本质上与具有TABLEs不同的相同。DATABASETABLEsDATABASEs

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


推荐阅读