2011-01-12 9 views
1

私はJavaでパフォーマンスに関する質問をしています。SQLデータベースのインデックス付きテーブルとクエリの比較対HashMap

私はSQLデータベース(この場合はH2データベースですが、その質問はどのSQLデータベースにも適用できます)に大きなインデックステーブルを持っています。

この表の項目は、このインデックスで検索する必要があります。

今、私は迅速であるのだろうか。

  • クエリのSQLデータベース
  • に最もfreqently

誰もこれについての考えを持っています、私が使用するフィールドのために、独自のハッシュマップを作ります? (いくつかの速度テストを作成してmyselveを見つける前に)。

答えて

2

ハッシュマップを参照する方が速くなりますが、データが変更された場合は、データの管理とキャッシュの更新のオーバーヘッドがあります。

データベースには多少のキャッシングがあり、一般的なクエリはおそらくクエリパーサーを経由せずにデータを非常に迅速に返すことに注意してください。

+0

この場合、データは変更されません。しかし、キャッシュのオプションは、H2データベースがこれを使用しているかどうかを調べるのは面白いです。 –

1

インデックス付きSQLクエリは1〜10ミリ秒で実行でき、HashMapのルックアップは1マイクロ秒未満でなければなりません。

既にSQLデータベースがある場合は、をご存じの場合、のデータをメモリに複製する必要があります。

1

あなた自身のHashMapを使用してメンテナンスすると、人生が疲れます メモリに格納するエントリが多すぎる場合はどうですか? アプリケーションを再起動するとどうなりますか? 考えていないもう1つのパラメータを検索する必要がある場合はどうすればよいですか? param1 = val1とparam2 = val2のように検索する必要がある場合

DBは、正しいインデックスセットを保持していれば、これらの機能をそのまま利用できます。 ほとんどの現代のDBは頻繁に照会されたデータをキャッシュに保存しているので、処理が速くなるはずです。

関連する問題