当drop partition需要等待时,如何让MySQL抛出错误

时间:2015-01-19 22:30:34

标签: mysql partitioning

MySQL innodb表,在日期时间列上划分,基本上只是一个记录表。

当我尝试重新组织或删除一个分区时(需要一个独占的元数据锁)我希望查询在几秒钟后超时并抛出一个错误,然后我可以捕获它,然后重试/警告任何进入的人收费服务器/等。有没有一个好的/简单的方法来做到这一点,或者我是否需要启动另一个线程来观察分区线程,如果它需要太长时间就终止查询?

(背景:我们遇到的问题是,对表的所有查询都会挂起“等待表元数据锁定”。这被追踪到一个从未关闭的事务,阻止每小时分区代码锁定表,同时防止其他任何东西被访问。故障代码被修改,但我希望分区系统在这种情况下保持不变。)

1 个答案:

答案 0 :(得分:-1)

请提供分区的详细信息并选择。您可能正在做的事情是所有操作都会一直锁定所有分区。

使用SELECT name FROM tbl_name并执行PARTITION BY RANGE删除最旧的,加上DROP PARTITION a"将来",空,分区到下一个小时再加上新的&#34 ;未来"

有关详细信息,请参阅http://mysql.rjweb.org/doc.php/partitionmaint