いっぽんの猟銃のむこうに (DAIZOじいさんとGun)

ヌルめの技術メモとか。フリーランスやってます (http://acez.jp/)

mysqldumpで大量のダンプデータを読み込む場合

前回、MySQLのload dataでCSVを読み込ませる場合にPKが付いてる(=インデックスがある)かどうかで、大量データの場合に死ぬほど速度差が出てくることがわかりましたが、じゃあsqldumpの場合はどうなんでしょうか。

ご存知の通り、一発のINSERTで大量のデータを突っ込むようなSQLが生成されるため、あんまり違いとかないんじゃないのかなーというのが予想です。

今回は諸事情でマシン性能がだいぶ違うので、前回のデータとは全然比較になりませんが。

400万件のレコードで、InnoDBです。テーブル構成も同じ。

・PKあり

# time mysql -u root --password=hoge benchmark_s < benchmark_s.sql

real 3m50.966s
user 0m10.289s
sys 0m0.016s

・インデックス(PK)なし

# time mysql -u root --password=hoge benchmark_noidx < benchmark_noidx.sql

real 2m14.428s
user 0m10.345s
sys 0m0.096s


400万件では糞重いということはないですが、意外と差が出てます。