dポイントプレゼントキャンペーン実施中!

データベース丸ごとmysqldumpでダンプしたファイルからリストアを行う際に、特定のテーブルのみインポートする方法はありますでしょうか。

ダンプファイルを開いて地道に編集すれば良いのでしょうが、ダンプファイルが1Gほどあるので、とてもできません。
その中の100M程のデータを得るために、いつも数時間かかっています・・・。

A 回答 (2件)

シェルスクリプトか何かを使ってファイルを分割するか、前の方が答えられてるように、一度別のDBに突っ込んでしまうか。



ただ "いつも数時間かかっています" とあるので、定期的に行っている作業なのであれば、dump を書き出すときにテーブルを指定したほうが早いかもしれません。

ファイルに書き出さないで直接ぶちこむ手もあります。

mysqldump --user=neko \
--disable-keys \
--extended-insert \
--default-character-set=binary \ ←環境による
--complete-insert \
--no-create-info \
--no-create-db \
--order-by-primary \ ←お好みで
--quick \
--compress \
・・・お好みのオプション
DB名 \
テーブル名1 \
テーブル名2 \
・・・
| mysql --host=転送先 --user=neko -C 転送先DB名

これだと一度ファイルに書き出すよりもかなり早く終わると思います。

参考URL:http://dev.mysql.com/doc/refman/5.1/ja/mysqldump …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
これからやる分に関してはテーブルごとにダンプという対応ができますが、既にあるダンプファイルに関しては、やはり一度全部インポートするしかなさそうですね。

直接DBにダンプを放り込む方法参考になりました。

お礼日時:2009/02/17 12:29

一度ローカルのMySQLにデータベースを作ってそこにそのダンプファイルを全部放り込んで、改めてそこから必要なテーブルのダンプファイ

ルを作ってみてはいかがでしょう?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
「一度ローカルのMySQLにデータベースを作ってそこにそのダンプファイルを全部放り込んで」の作業に現在数時間かかっているので、それをもっと速くする方法はないものかと思っておりまして・・・。

お礼日時:2009/02/17 12:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!