使用 mysqldump 時避免 lock Table
mysql dump -`mysqldump --single-transaction `
How
--single-transaction
會將隔離級別設為 REPEATABLE READ
。並以 START TRANSACTION
開始,這讓在 dump 過程中保證數據一致性。
這方式在 InnoDB
的表中有用,也不需要 lock table
。
但在 MyISAM
和 MEMORY
格式中則不能保證。
使用該參數,在 dump 過程也需保證沒有 ALTER TABLE
, CREATE TABLE
, DROP TABLE
, RENAME TABLE
, TRUNCATE TABLE
等指令被執行。
REPEATABLE READ
在資料變動時,會重新讀取,如果發生則作業的時間會比較長。