mysqldumpのオプション例

MySQLデータベースのダンプ(mysqldump)におけるオプションについて。

各オプションの詳細

–opt
–add-drop-table –add-locks –create-options –disable-keys –extended-insert –lock-tables –quick –set-charset をまとめたオプション。(デフォルトで有効)

–add-drop-table
CREATE TABLE 文の直前に DROP TABLE 文を出力。

–add-locks
各テーブルのSQL文を LOCK TABLE, UNLOCK TABLE で囲みます。

–create-options
CREATE TABLE 文を構成。

–disable-keys
INDEX の生成を INSERT 文の実行後に行う。

–extended-insert
INSERT 文のコンパクト化。
例 INSERT INTO tbl VALUES (….), (….), (….);

–lock-tables
ダンプ取得の際に、ダンプされる側のテーブルをロックすることで、頻繁に更新されるデータベースにおいてデータの整合性を保持しながらのダンプが可能。

–quick
メモリにバッファせず一度に 1 行ずつダンプ。

–set-charset
ダンプの冒頭に SET NAMES 文を出力。セットする文字コードは default_character_set を使用。

–add-drop-table
DROP TABLE を CREATE TABLE ステートメントの前に追加。

–single-transaction
スナップショットを元にデータダンプを行う事でロックせずに整合性のとれたダンプが可能。
ストレージエンジン InnoDB が必須条件。

–no-create-info
CREATE TABLE 文を出力しない。

–all-databases 複数のデータベースをまとめてダンプ

–ignore-table
任意のテーブルをダンプ対象から除外
例 –ignore-table=db_name. 除外するテーブル名

–no-data
テーブル構造のみダンプ。

-t
データのみダンプ。

–opt で指定する各オプションを無効にするには、–skip-extended-insert のようにオプションの頭に –skip を付けることで除外します。

ダンプオプションの指定方法については、デフォルトで有効な –opt の内容を加味したうえで、無効にしたいものには –skip を付け、新たに必要なオプションを記述する方法と、一旦、–skip-opt で –opt を無効にしたうえで、必要なオプションだけを記述する方法があります。

後者のほうがすっきりして直感的に理解しやすいのではないかと思います。

例 –skip-opt –quick –no-create-info –extended-insert –disable-keys

尚、先頭に –skip を付ける場合は、その後の「-」はひとつです。

例 –skip-add-drop-table

先頭のみ「-」がふたつと覚えておくとよいでしょう。