Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mariadb 创建分区会锁定表吗?_Mariadb_Partitioning - Fatal编程技术网

Mariadb 创建分区会锁定表吗?

Mariadb 创建分区会锁定表吗?,mariadb,partitioning,Mariadb,Partitioning,我有两个大表(从60M行到2Bi行)在上面创建一些分区,因为它们在我们平台的核心中使用,我们正在尝试找出当我们开始在生产环境中创建分区时,数据库是否会在这些表上生成任何类型的锁 我们在10.0.24和10.1.34上 ALTER TABLE data\u按范围(句点)划分的历史分区( 分区过去值小于(201801), 分区p2018值小于(201901), 分区p2019值小于(202001), 分区p2020值小于(202101), 分区未来值小于MAXVALUE ); period列是一个

我有两个大表(从60M行到2Bi行)在上面创建一些分区,因为它们在我们平台的核心中使用,我们正在尝试找出当我们开始在生产环境中创建分区时,数据库是否会在这些表上生成任何类型的锁

我们在10.0.24和10.1.34上

ALTER TABLE data\u按范围(句点)划分的历史分区(
分区过去值小于(201801),
分区p2018值小于(201901),
分区p2019值小于(202001),
分区p2020值小于(202101),
分区未来值小于MAXVALUE
);

period
列是一个整数字段,采用年+月(yyyyymm)格式。

分区添加到表中时,会复制整个表。因此锁

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


为什么要分区?分区本质上不会导致任何性能改进。有关分区有益的几种情况的讨论,请参见此部分:

将分区添加到表中时,会复制整个表。因此锁

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


为什么要分区?分区本质上不会导致任何性能改进。有关分区有益的少数情况的讨论,请参见本文:

我需要在这些表上实现一个归档过程,因为大多数数据都是旧的,不需要对应用程序可用。因此,在我将数据复制到归档文件后,我基本上需要删除这些表中大约40%的数据。@MaltMaster-我提供的链接是针对此类应用程序的-一个时间序列,并使用
DROP PARTITION
而不是更慢的
DELETE
<如果您需要移动已删除的数据,可以使用code>EXCHANGE PARTITION
。我们从您发布的链接中得到了这个想法。刚刚添加了我们计划在原始文章中使用的SQL分区代码。我们正处于it的规划阶段,并在分区创建过程中评估系统中的影响-分区的初始创建将非常昂贵;后续维护(删除和重新组织)对表的访问几乎没有影响。@MaltMaster-请注意,这是一个将未来重新组织到未来202012的过程,应该在您开始插入202012时完成。如果你做得太快,你会无缘无故地有额外的分区。如果做得太晚,则需要复制
future
中的任何行。但这是一个额外的好处——它可以防止未能及时执行reorg(行不会丢失)。我需要在这些表上实现一个归档过程,因为大多数数据都是旧的,不需要对应用程序可用。因此,在我将数据复制到归档文件后,我基本上需要删除这些表中大约40%的数据。@MaltMaster-我提供的链接是针对此类应用程序的-一个时间序列,并使用
DROP PARTITION
而不是更慢的
DELETE
<如果您需要移动已删除的数据,可以使用code>EXCHANGE PARTITION
。我们从您发布的链接中得到了这个想法。刚刚添加了我们计划在原始文章中使用的SQL分区代码。我们正处于it的规划阶段,并在分区创建过程中评估系统中的影响-分区的初始创建将非常昂贵;后续维护(删除和重新组织)对表的访问几乎没有影响。@MaltMaster-请注意,这是一个将未来重新组织到未来202012的过程,应该在您开始插入202012时完成。如果你做得太快,你会无缘无故地有额外的分区。如果做得太晚,则需要复制
future
中的任何行。但这是一个额外的好处——它可以防止未能及时执行reorg(行不会丢失)。
小于(201912)
可能不包括12月?是的,请注意范围已关闭。现在已修复。
小于(201912)
可能不包括12月?是的,请注意范围已关闭。现在修好了。