我有主从复制数据库。 我有一张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
);
感谢您的回答。
答案 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
的正确方法。