6

CSV ファイルの内容を MySQL データベース (比較する行が 100 万行以上) と効率的に比較する方法を見つけようとしています。メモリのオーバーロードによる行数。

私の質問は、それを行うための推奨される方法はありますか? 役立つライブラリや何か?

私はあなたの答えに感謝します。

4

3 に答える 3

10

これがサニティ チェックであり、差異を 0 にすることを目指していると仮定すると、データベースを同じ形式の CSV ファイルとしてダンプし、コマンド ライン ツール (diffまたはcmp) を使用してそれらが一致することを確認してはどうでしょうか?

もちろん、CSV ダンプが元のファイルと同じ順序でフォーマットされていることを確認する必要があります。

于 2012-04-16T01:27:25.827 に答える
2

@therefromhere の優れた回答に加えて、MySQL と元のファイルの両方でハッシュを計算し、2 つを比較することもできます。

于 2012-04-16T01:36:11.307 に答える
0

自分で試したことはありませんが、MySQLにはCSVテーブルタイプがあります。まるで別のデータベーステーブルであるかのように、MySQLにファイルを直接読み取らせることができる場合があります。おそらく、最初に、所有しているCSVファイルと一致する空のテーブルを作成する必要があります。これにより、.frmファイルがデータディレクトリに作成されます。次に、データディレクトリ内の空の.csvファイルをCSVファイルに置き換えることができます。インポートを実行しなかったため、修復テーブルを実行する必要がある場合があります。

http://dev.mysql.com/doc/refman/5.1/en/csv-storage-engine.html

于 2012-04-16T01:57:05.190 に答える