重组MariaDB表分区有什么影响?

时间:2017-11-15 08:01:05

标签: mysql mariadb replication partitioning database-partitioning

我有主从复制数据库。 我有一张10米行的桌子。我每月按范围设置分区,例如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
    );

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

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

如果您在需要REORGANIZE分区之前执行LESS THAN '2017-12-01',则几乎不会产生任何影响。这是因为p_future应为空,并且尚未存储到新分区中。

我说“几乎没有影响”,因为桌面上会有一些简短的元锁等,但没有数据可供使用。

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

您使用[复制]对其进行了标记,但应该对复制进行复制没有影响。对于Galera,TOI应该是ALTER的正确方法。