mysql - Reorganize MariaDB table partition 有什么影响?

标签 mysql mariadb replication partitioning database-partitioning

我有主从复制数据库。 我有一个 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
    );

感谢您的回答。

最佳答案

(听起来你读了我的 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 的正确方法。

关于mysql - Reorganize MariaDB table partition 有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47302160/

相关文章:

mysql - 如何简单地处理(非常)短的 mysql 复制滞后

java - 找不到适用于 jdbc :mariadb (Netbeans) 的合适驱动程序

mariadb - MariaDB 是否支持嵌套事务?

Windows 上的 mysqldump 忽略用户/密码

MongoDB副本集: Disk size difference in Primary and Secondary Nodes

MySQL:如何从一个 GROUP BY 级别中选择一个值并在所有级别中广播

mysql - 仅在 mysql 的 varchar 列中按日期分组

mysql - 替换mysql中两个字符之间的文本

php - mysql_query() 返回一些奇怪的东西

database - 关于复制方案/算法的文章?