2

InnoDBMySQLデータベースがあります。ダンプをエクスポートするとSQL、どのようにロックが発生しますか?エクスポート中にデータベース全体がロックされますか?それともテーブルだけですか?それとも個々の行ですか?エクスポートはどの程度正確に機能しInnoDBますか?

4

1 に答える 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 に答える