gpt4 book ai didi

mysql - 如何创建链接的mysql数据库

转载 作者:行者123 更新时间:2023-11-29 21:46:14 26 4
gpt4 key购买 nike

我的软件只能按名称读取一个数据库。但是,每天我都必须检查 30 多天前的记录,因此我的解决方案是每天重命名数据库(附加时间戳)并使用旧名称创建一个新数据库,以便我的软件可以继续运行。

我需要我的软件来读取所有数据库,但它只能读取一个。有没有一种方法可以在不复制数据库的情况下将主数据库与存档数据库链接起来?我认为我不能使用 MERGE,因为我无法按天拆分数据库。

例如

  • 软件仅读取数据库MAINDB
  • 每天,定时任务都会重命名数据库。 MAINDB 变为 BKDB_2015_12_04。我仍然可以从 mysql 访问数据库,因为它不是转储的数据库。
  • 创建了一个新的 MAINDB 供软件读取。
  • 但是,我需要该软件来读取 BKDB_2015_12_04 和任何其他数据库 BKDP_* 中存储的数据
  • 我希望该软件在读取 MAINDB 时,也读取 BKDB_*

本质上,我有一些“只读”数据库,并且我按天对数据进行分区。我正在阅读有关使用 PARTITION 的内容,但我正在处理大量数据,并且我不确定 PARTITION 是否能有效处理如此大量的数据。

最佳答案

重命名并重新创建数据库是一个“坏主意”。当您重命名和重新创建时,如何确定您的数据库没有被访问?

例如,假设我正在购买,当我向数据库表中添加商品时,我的购物篮被写入数据库表(不太可能出现这种情况,但有可能)。我正在浏览选择更多元素。在我浏览时,现有数据库被重命名,并重新创建了一个新数据库。瞬间,我的篮子就空了,没有任何解释。

对于备份,如果您的数据库在备份过程中被重命名,会发生什么情况?您如何确定所有其他重命名的数据库都已备份?

最后一件事 - 从长远来看,重命名的数据库会发生什么?他们会永远留在那里吗?一定时间后会掉落吗?等等

如果您要检查 30 天以上的记录,您应该考虑的唯一解决方案是为每条记录添加时间戳。如果您的表通过单个“主”表链接,请将时间戳记放在那里。您的查询可以基本保持不变(除了添加时间戳检查之外),并且您不必计算过去 30 天的数据库名称

关于mysql - 如何创建链接的mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34089558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com