質問
- データベースへの大量データインポートについて
-
本文:
現在、ミニバード内のMySQLへ大量のデータをインサートしようとしています。
phpMyAdmin内の「SQL」タブより、
長いSQL文をテキストエリアへ貼り付けようとすると、
決まってフリーズして、まともに進めることができません。(積んでるメモリは4GB)
分割してインサートして行こうにも、あまりに多く現実的ではありません。
SQL文をファイル化⇛圧縮したものをアップロード方式でも試してみましたが、やはり固まったり「Internal Server Error」が出たりで安定しません。
理想は対象のDBをデータベースクライアントで接続して一気に流しこむ方法ですが、外部接続できないようなので厳しそうです。
何か一括でデータをインサートする方法はないでしょうか。
良い方法があれば、よろしくお願いいたします。 - 緊急度:急ぎ投稿者:soho.programmerさん投稿時間:2015/08/03 23:21
回答 No.3730
-
本文:
どうしても一括でということなら、ダンプファイルをアップロードして、phpのプログラムでそれを読みながら実行するプログラムを書くしかないのでは?
ダンプファイルを普通に作ると insert文でなく copy文だったりすることがあるので(これはこれで、一行が長すぎると文句を言われる可能性がある)、短いSQL文の集まりにする必要があるかも知れないけれども。 - 投稿者:ジョバンニさん 投稿時間:2015/08/03 23:47
質問者からのコメント
ご返信ありがとうございます!
たしかに、自分で実装することを変に避けてましたが、
よく考えれば一番コストをかけずに実現できそうです。
よくない考え方にはしっていたことに気がつきました。
ありがとうございます!
回答 No.3763
-
本文:
平素はネットオウルをご利用いただき誠にありがとうございます。
ネットオウル運営チームです。
本ご質問は一定期間新たな回答がなかったため
運営チームで締め切らせていただきました。
■質問の締め切りについて
Q&A掲示板はユーザー様同士の交流掲示板です。
回答がもらえた場合、回答者へお礼コメントをしましょう。
問題が解決した際にはベストアンサーを選び、
質問を締め切ってください。
■再度のご質問について
ご質問が未解決の場合、「ワンポイント!」を参考に、
再度質問してみてください。
【ワンポイント!】
メールやFTPの設定がうまくいかない場合、
ネットオウルIDやサーバーIDなどのお客様情報を公開しない範囲で、
現在の設定内容を出来るだけ詳しく書いてみましょう。
設定内容のミスを指摘してもらえるかもしれません。
エラーが出てうまくいかない場合、
エラーメッセージの内容を書いてみましょう。
エラーメッセージにはエラー原因が詳しく書かれていることが多く、
問題の解決につながる回答が得られるかもしれません。
■ベストアンサーについて
ご質問の締め切りに際して、運営チームにて
ベストアンサーを選んでおります。
※ベストアンサーの回答者様には通常と同様のポイントが
付与されています。
--ネットオウル運営チーム-- - 投稿者:ネットオウル運営 投稿時間:2015/08/19 12:40
回答 No.3731
この回答がベストアンサーです
>SQL文をファイル化⇛圧縮したものをアップロード方式でも試して
>みましたが、やはり固まったり「Internal Server Error」が出たりで安定
>しません。
圧縮したファイルのファイルサイズはどの程度なのでしょうか?
5MB程度なら、問題なくインポートできてます。
10MB程度でもたしか上手くいった記憶はあります。
質問者からのコメント
ご返信ありがとうございます!
こちらがアップロードしたのは5MB程度でした。
しかし、よく考えると共有サーバーの混雑する時間帯であったことが
関係していたのかもしれません。
こちらの方法も、時間帯を変えて試してみたいと思います。
ありがとうございます!