【问题标题】:What are impact when Reorganize MariaDB table partition?Reorganize MariaDB 表分区时有什么影响?
【发布时间】:2017-11-15 08:01:04
【问题描述】:

我有主从复制数据库。 我有一个 10m 行的表。我按每月响铃设置分区,例如 p_201701、p_201702、.. 并包括“p_future”。在master中,我计划将我的分区'p_future'重组为'p_201711'和'p_future'。我计划使用以下查询进行重组。

  • 运行此查询时对我的数据库有什么影响?
  • 是否会阻止我的表插入、更新?
  • 对我的复制从站有什么影响?

..

ALTER TABLE tbl_history
    REORGANIZE PARTITION p_future INTO(
    PARTITION p_201711 VALUES LESS THAN (TO_DAYS('2017-12-01')),
    PARTITION p_future VALUES LESS THAN MAXVALUE
    );

感谢您的回答。

【问题讨论】:

    标签: mysql mariadb replication partitioning database-partitioning


    【解决方案1】:

    (听起来你读过我的http://mysql.rjweb.org/doc.php/partitionmaint

    如果您在需要LESS THAN '2017-12-01' 分区之前执行REORGANIZE,则几乎没有影响。这是因为p_future 应该是空的,并且没有任何内容存储到新分区中。

    我说“几乎没有影响”是因为表上会有一些简短的元锁等,但没有数据可以铲。

    该技术有点“故障安全”,因为如果您无法运行查询,一切都会继续工作。新行(错误地)进入 p_future,SELECTs 会找到它们。最终,您需要运行脚本(它会更慢)以创建新分区并将行从 p_future 移动到其中。

    您使用 [replication] 对其进行了标记,但对 on/by replication 应该没有影响。对于 Galera 来说,TOI 应该是处理ALTER 的正确方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2019-10-11
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多