2

私の現在のMySQLテーブルemployee_dataには、17列の13k行があります。表のデータはCSVファイルからのものですEmployees.csv。csvデータをインポートした後、新しい列「パスワード」を追加しました(したがって、csvファイルにはありません)。パスワードは、Webポータルを介して編集およびアクセスされます。更新されたcsvファイルがあり、そのデータでメインテーブルを更新したいのですが、パスワード情報を失いたくありません。

新しいCSVファイルをデータベースの一時テーブルにインポートし、それらをどのように比較する必要がありますか?どこから始めればよいかわからないので、推奨事項を受け入れます。

パスワード情報を別のテーブルに保存する必要があることに気づきました。ドー!

employee_idフィールドに基づいて各行を比較するphpファイルを作成できたと思いますが、13k行では、タイムアウトになる可能性があります。

4

2 に答える 2

9

私はこのようにします:

  • 構文を使用して一時テーブルを作成するCREATE TABLE new_tbl LIKE orig_tbl;
  • LOAD DATA INFILECSVからテーブルにデータをインポートするために使用します
  • UPDATE主キー/一意の列を使用して主テーブルを更新するために使用します(おそらくemployee_id

私は1億2000万行を含むテーブルを操作し、それに3000万行を含むCSVファイルをインポートしました-これは私がいつも使用する方法です-PHPの何よりもはるかに効率的です(そしてそれは私の選択したサーバー側の言語です)

于 2012-06-13T16:39:48.077 に答える
1

phpベースのツール以外の他のツールを試してくださいphpMyAdminMySQL ワークベンチは優れたツールです。接続に基づいて、データベースにデータをクエリするのに時間がかかります。
phpタイムアウト制限 set_time_limit();の回避策があります。

于 2012-06-13T16:36:54.037 に答える