Mysql
TRUNCATE TABLE 語句有時會掛起
為什麼
TRUNCATE TABLE
語句有時會掛起?此類問題的原因是什麼?我正在從 MySQL 遷移到 MariaDB。MySQL 不會出現這個問題,只有 MariaDB 會出現這個問題。
掛的說法很簡單:
TRUNCATE TABLE sampledb.datatable;
什麼會導致這種情況發生,我該如何解決?
另一個觀察是如果表有一些數據,可能是一兩行,那麼截斷查詢成功。否則表有很多數據,查詢會掛起。
您在執行時遇到性能下降或停止的原因
TRUNCATE TABLE
是此語句的一個已知問題。請參閱錯誤 #68184:截斷表導致 innodb 停止。還為以前的版本打開了其他錯誤編號。您可以使用:
CREATE TABLE log_table_new LIKE log_table; RENAME TABLE log_table TO log_table_old, log_table_new TO log_table; DROP TABLE log_table_old;
對於具有值的表來說,它變得很棘手
AUTO_INCREMENT
:新表是使用一個AUTO_INCREMENT
立即在工作表中獲取的值創建的。如果您不想使用相同的值,您可以:ALTER TABLE log_table_new AUTO_INCREMENT=some high enough value;