mysql - MySQL 归档数据的最佳实践
问题描述
我有一个 120Go 数据库,其中包含 1 个特定的非常重的 80Go 表(自 +10 年以来存储数据)。
我想在存档中移动旧数据,但想知道它是否最好:
- 将它们移动到同一数据库中的新表中
- 将它们移动到新存档数据库的新表中
从性能的角度来看会是什么结果?
1/如果我将表减少到只有 8Go 并将 72Go 从同一个数据库中移到另一个表中,数据库是否会运行得更快(我们不会通过读/写操作访问存档表,并且 r/W 将在更轻的桌子)。
2/ 将 72Go 的数据保存到存档表中无论如何都会减慢数据库引擎的速度?
3/ 将 72Go 的数据保存到另一个存档数据库中与将 72Go 保存到主数据库的存档表相比有什么好处?
谢谢你的回答,爱德华
解决方案
表的大小可能会也可能不会影响对该表的查询性能。这取决于查询innodb_buffer_pool_size
和 RAM 大小。让我们看一些典型的查询。
未使用的大表的存在对针对其他表的查询没有影响。
PARTITION BY RANGE TO_DAYS(...)
每月或每年分区可能是明智的,也可能不是明智的。主要优点是您可以清除旧数据,但您似乎不需要这样做。
如果你确实拆分成 72 + 8,我建议将 80 从 80 复制到一个新表中,然后使用RENAME TABLEs
来调整表名。
二合一本质上与具有TABLEs
不同的相同。DATABASE
TABLEs
DATABASEs
当您提供更多详细信息时,我会更新此答案。