Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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
MySQL分区删除需要时间_Mysql_Database Partitioning - Fatal编程技术网

MySQL分区删除需要时间

MySQL分区删除需要时间,mysql,database-partitioning,Mysql,Database Partitioning,在某些情况下,我们使用MySQL按日期分区来存储数据,保留X天的信息,每天都会有一个自动过程提前创建分区并删除旧分区(请注意,这里没有存档,只需删除)。数据还通过一些散列子分区为40个分区,以进一步优化访问 每天运行“altertabletdroppartition”查询时,数据库的性能会明显下降,在该数据库上中继的应用程序会出现连接下降、每秒服务的请求减少等情况 我们使用InnoDB为这个特定的应用程序运行MySQL 5.5.17,每个被删除的分区都有数百万条记录(可能超过1000万条)。每个

在某些情况下,我们使用MySQL按日期分区来存储数据,保留X天的信息,每天都会有一个自动过程提前创建分区并删除旧分区(请注意,这里没有存档,只需删除)。数据还通过一些散列子分区为40个分区,以进一步优化访问

每天运行“altertabletdroppartition”查询时,数据库的性能会明显下降,在该数据库上中继的应用程序会出现连接下降、每秒服务的请求减少等情况

我们使用InnoDB为这个特定的应用程序运行MySQL 5.5.17,每个被删除的分区都有数百万条记录(可能超过1000万条)。每个分区的大小平均为4.5GB

在分区删除时,我没有在那个盒子上看到任何密集的IO,所以我只能假设它与此无关。然而,CPU平均负载从一天中正常的0.5增加到8-10左右。这会持续几分钟

分区删除不应该是一个简单的逻辑删除吗?有没有可能我们做错了什么,或者我们可以通过某种方式调整它,或者这是意料之中的


干杯

我意识到这是一个老问题,但它没有答案,所以我要试一试

如果文件系统是ext3,则删除该文件可能需要一些时间。XFS和ext4将更快


从MySQL的角度来看,可以做的一个加快速度的技巧是创建一个到分区文件的硬链接(而不是符号链接)。然后,DROP分区将简单地减少文件上的引用计数,这几乎是即时的。您可以删除您对该文件的链接。这仍然需要一些时间,但MySQL不会看到它。

我意识到这是一个老问题,但它没有答案,所以我将尝试一下

如果文件系统是ext3,则删除该文件可能需要一些时间。XFS和ext4将更快

从MySQL的角度来看,可以做的一个加快速度的技巧是创建一个到分区文件的硬链接(而不是符号链接)。然后,DROP分区将简单地减少文件上的引用计数,这几乎是即时的。您可以删除您对该文件的链接。这仍然需要一些时间,但MySQL不会看到它