【问题标题】:How to swap MEMSQL tables using an atomic operation如何使用原子操作交换 MEMSQL 表
【发布时间】:2019-08-20 19:04:13
【问题描述】:

我有 2 个列存储 MEMSQL 表 a_primary 和 a_seconday。 a_primary 负责为所有读取请求提供服务。我执行从仓库到 a_secondary 表的数据刷新。数据加载和分析完成后,我想将 a_secondary 设为主表。我尝试了hotswap tables in mysql 选项,但没有奏效。

其他选项例如在主表顶部创建视图并在加载完成后将其更改为指向辅助表。

关于如何使用原子操作优化交换 2 个 memsql 表有什么建议吗?

【问题讨论】:

    标签: mysql singlestore


    【解决方案1】:

    是的,您可以为此目的使用视图。您可以使用 ALTER VIEW 以原子方式将视图从一个表更改为另一个表。这听起来对您的用例来说是一个不错的选择,因为您只需要原子交换可以引用视图的读取请求,而写入请求则直接引用底层基表。

    不幸的是,目前无法在 MemSQL 中自动交换表名。您可以使用多个单独的 ALTER TABLE RENAME 命令交换表名:B->C、A->B 和 C->A。但它不是原子的,并且在此过程中表格的可见性存在差距。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多