创建分区会锁定表吗?

时间:2019-10-09 10:04:56

标签: mariadb partitioning

我有几个大表(从6000万行到2Bi行)在其上创建一些分区,因为它们被用在平台的核心中,我们试图找出是否何时开始在Windows中创建分区。生产环境中数据库将在这些表上生成任何形式的锁?

我们使用的是MariaDB 10.0.24和10.1.34。

config.vm.provision "shell", inline: "if [ ! `which python` ]; then sudo pacman --noconfirm -S python; fi"

ALTER TABLE data_history PARTITION BY RANGE ( period ) ( PARTITION past VALUES LESS THAN (201801), PARTITION p2018 VALUES LESS THAN (201901), PARTITION p2019 VALUES LESS THAN (202001), PARTITION p2020 VALUES LESS THAN (202101), PARTITION future VALUES LESS THAN MAXVALUE ); 列是整数字段,格式为年+月(YYYYMM)。

1 个答案:

答案 0 :(得分:1)

PARTITIONing添加到表时,整个表将被复制。因此是锁。

PARTITION添加到已分区的表中时,这取决于发出的实际命令。所有(?)情况都会锁定,但锁定的长度会有所不同。请提供实际的命令。

为什么要分区?分区本质上不会导致任何性能改进。参见以下内容讨论对分区有益的几种情况:http://mysql.rjweb.org/doc.php/partitionmaint