1

ここに状況があります。10 列以上、数百万行の巨大なデータベースがあります。各入力レコードをデータベースの値と照合する照合アルゴリズムを使用しています。

何百万ものレコードが一致する場合、データベース操作に多くの時間がかかります。マルチハッシュマップまたは結果セットの代替手段を使用して、テーブル全体をメモリに保存し、データベースに再びアクセスするのを防ぐことを考えています....

私は何をすべきか誰か教えてもらえますか??

4

1 に答える 1

1

これは正しい方法ではないと思います。データベースの作業を Java で手動で実行しようとしています。あなたがこれを行うことができないと言っているわけではありませんが、ほとんどのデータベースは何年にもわたって開発されており、あなたが望むことを正確に行うのに非常に優れています.

ただし、特定の種類のクエリを高速に実行するには、データベースを正しく構成する必要があります。したがって、クエリのパフォーマンスを向上させるためにデータベース構成を微調整できるかどうかを最初に確認することをお勧めします。最も一般的なことは、適切なインデックスをテーブルに追加することです。詳細については、 How MySQL Use Indexesまたは特定のデータベースのマニュアルの対応する部分を参照してください。

もう 1 つのことは、非常に多くのデータがある場合、すべてをメイン メモリに格納することはおそらく高速ではなく、実行不可能でさえあるということです。最初にデータ全体を転送する必要があることは言うまでもありません。

いずれにせよ、まずプロファイラーを使用して、プログラムのボトルネックを特定してみてください。たぶん、問題はデータベース側にもありません。

于 2012-10-24T12:19:57.297 に答える