• 締切済み

MySQLに100万件登録する最も効率の良い方法

A(600)xB(800)xC(3)で144万件の作成してMySQLへ登録したい のですが、最も効率良く登録する方法は何でしょうか? 私がとりあえず思いつくのは、下記2つのうち案2)です。 案1)プログラム&MySQL 1.PHPなどのプログラムのループ処理でテストデータを作成 2.mysql>LOAD DATA INFILE "/path/to/file.csv" INTO TABLE tablename FIELDS TERMINATED BY ","; 懸念点:メモリが足りず小分けにしないとインポートできなそう。 案2)プログラムのみ 1.PHPなどのプログラムのループ処理でテストデータを作成し、   1つのINSERT文で、1000件ぶんを一気にコミット 例:INSERT INTO table (a,b,c) VALUES (1,1,1),(1,1,2)・・・

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

いまいち状況がつかめないのですが、とりあえず普通にやるなら 案2でしょうね。 ただ、144万件をわざわざ登録しないといけないのでしょうか? A、B、C別データで管理すればよさそうな気が・・・ とはいえ、とりあえずこんなこともできないことはないので、参考程度に。 (大量のデータで検証はしてませんのでチャンと動くかはわかりません) CREATE TABLE `A`(`data` int); INSERT INTO `A` VALUES(1),(2),(3); CREATE TABLE `B`(`data` int); INSERT INTO `B` VALUES(1),(2),(3); CREATE TABLE `C`(`data` int); INSERT INTO `C` VALUES(1),(2),(3); CREATE TABLE `D` SELECT CONCAT(A.`data`,"-",B.`data`,"-",C.`data`) AS `data` FROM A,B,C

php4
質問者

お礼

すみません。質問を間違えました。 A,B,Cは別列です。しかしながら、勉強になりました。 ありがとうございます。

関連するQ&A