膨大なサイズのCSVファイルから爆速でMySQLへインポート
CSVファイルからDB(MySQL)にインポートする機能はよくあるし、情報もゴロゴロとある。前回の記事では大量のデータをCSVファイルとして素早く書き込む方法を書いたが、今回はその逆と言っても良い。 ただ、CSV→DBは色々な制約を受けるので最も早く確実なただ一つの答えがあるわけではなさそう。今回紹介するのはサーバーのupload_max_filesizeや利用可能メモリについては度外視している。 CSVのMySQLインポートの手段 先に方法を列挙すると以下のようになる。 1レコードずつインサート(激遅) バルクインサート(速い) バッチでインサート(ちょっと遅い) LOAD DATA LOCAL INFILEインサート(最速) 全てのやり方ができる環境かどうかも考慮に入れる必要がある。 また今回はフレームワークで使用されることを前提としてPHP(Laravel)で検証しているが、Insertの処理速度という意味ではDBの問題なのでどのフレームワークであろうが、どの言語であろうが同じである。
2019/07/24 15:20