应该将未使用的表归档吗?

时间:2019-01-21 01:52:49

标签: mysql database relational-database amazon-rds amazon-rds-aurora

我们的数据库中有一个表大约需要25GB。当前代码不再使用它。

即使我们未查询/使用过该表,它将对任何其他表进行性能改进(对于其余表)?请提供解释。

我们正在将MySQL与AWS Aurora结合使用。

3 个答案:

答案 0 :(得分:0)

存档表不会对Aurora产生任何影响。最终,未使用的页面会从缓冲池中逐出[1],此后,除非您进行查询以触及这些页面,否则它们永远不会被拉回到数据库实例中。

您将保持未使用状态,将继续支付存储成本(以及快照等其他间接成本)。更好的选择是将未使用的数据移动到新集群,从中创建快照,然后删除集群。您随时可以通过还原快照来恢复数据。然后,可以通过删除这些未使用的表来清理原始数据库。这样,您最终只需要为快照付费,这比较便宜。

您还可以将数据导出到mysql(比如说CSV)之外,并将其存储在S3 / Glacier中。唯一的麻烦是,当您需要访问数据时,将数据加载回现有或新的数据库集群可能会花费更多时间。

[1]缓冲池使用LRU逐出。当您的工作负荷运行很长时间时,您最终将淘汰所有与未使用表关联的页面。链接:https://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html

答案 1 :(得分:0)

是的,归档还将提高性能,同时减少备份/恢复周期的边和速度。 在最近的全职工作中,我曾在不同的项目上尝试过它,结果令人赞叹。对于那些拒绝的人,我只会说:

  • 减少占用空间可减少磁盘IO和扫描
  • 减少占用空间可减少缓冲区需求,从而减少RAM需求。

答案 2 :(得分:-2)

,存档不常用的数据将减轻更快,更频繁访问的数据存储系统的负担。不太可能经常需要的较旧数据放置在不需要具有仍在使用数据的系统的速度和可访问性的系统上

已归档的数据存储在成本较低的存储层上,作为减少主存储消耗和相关成本的一种方式。通常,重复数据复制是在将数据移至较低存储层时执行的,从而减少了总体存储空间并降低了辅助存储成本