InnoDB
MySQLデータベースがあります。ダンプをエクスポートするとSQL
、どのようにロックが発生しますか?エクスポート中にデータベース全体がロックされますか?それともテーブルだけですか?それとも個々の行ですか?エクスポートはどの程度正確に機能しInnoDB
ますか?
1 に答える
0
ロックされているものを制御できます。
最も安全にするために、次のようにすべてのテーブルをロックできます。
mysqldump --lock-all-tables
ドキュメント: すべてのデータベースのすべてのテーブルをロックします。これは、ダンプ全体の間、グローバル読み取りロックを取得することによって実現されます。このオプションは、 --single-transaction と --lock-tables を自動的にオフにします。
または、テーブルを変更しないことが確実な場合:
mysqldump --single-transaction
ドキュメント: --single-transaction ダンプの処理中は、有効なダンプ ファイル (正しいテーブル コンテンツとバイナリ ログ座標) を確保するために、他の接続で次のステートメントを使用しないでください: ALTER TABLE、CREATE TABLE、DROP TABLE、RENAME TABLE 、テーブルを切り捨てます。一貫性のある読み取りはこれらのステートメントから分離されていないため、ダンプされるテーブルでそれらを使用すると、mysqldump によって実行される SELECT がテーブルの内容を取得して誤った内容を取得したり、失敗したりする可能性があります。
于 2012-04-09T04:24:00.043 に答える