今まではforを使って1件ずつ登録していたのですが、これだと1万件以上登録させようとすると、
処理に時間がかかってしまいます。
出来るだけ処理時間がかからないSQL文の書き方を、教えていただければと思います。
MySQLは4.1.22で、対象テーブル(user_log)のストレートエンジンはMyISAMです。
登録させようと思っているのは、会員ID(user_id)の他に、登録時間(date)と
PHPで生成した識別コード(code)を登録します。
MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 5.2.10 INSERT クエリの速度
INSERT の効率化については上記のページにすべてまとまっています。
ファイルからのロードが圧倒的に早いですが、あくまで SQL でやろうと思うと
マルチプルインサートが妥当かと。
http://dev.mysql.com/doc/refman/4.1/ja/mysqlimport.html
一番早いと思われる方法はPHPの配列にある情報をいったんテキストファイルに出力しLOAD DATAを使うことだと思います。
http://phpdoc.m-takagi.org/mysqli.set-local-infile-handler.html
http://q.hatena.ne.jp/1144055939
このあたりが参考になるかもしれません。
LOAD DATAが良さそうだったので、以下(コメント欄)のソースを書きました。しかし、上手く登録出来ません。
この点について、ソースの指摘等がありましたら、お願いします。