--single-transaction
を使用します InnoDBテーブルでのテーブルロックを回避するため。
MyISAMを使用するべきではありませんが、MyISAMについて実際にできることは何もありません。最善の回避策は、読み取りレプリカを作成し、レプリカからバックアップを作成して、ロックがアプリケーションに影響を与えないようにすることです。
あなたが見つけなければならないのは、バックアップの実行中に、READ LOCAL
ロックは、現在バックアップされている単一のデータベース内のテーブルで保持されます。つまり、テーブルから読み取ることはできますが、書き込み(挿入/更新/削除)はを除いてブロックします。 ロックを乱すことなく実現できるMyISAMの特定の挿入。それらは許可されるかもしれません。これが発生していることを確認する最も簡単な方法は、SHOW FULL PROCESSLIST;
を繰り返しクエリすることです。 ブロックしているスレッドを見つけるため。