使用 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 在資料變動時,會重新讀取,如果發生則作業的時間會比較長。