1

データベーステーブルの検索クエリの結果を1秒以内に取得する必要があります。データベーステーブルはこの時点でゆっくりと結果を返します。検索結果が速くなるように、テーブルをキャッシュに移動してそこから検索する必要があります。既存の検索ページでGoogleタイプのページ更新を実行したい-つまり、ユーザーが入力するとページが更新されるはずです。
これを実現するには、検索結果が1秒以内に返される必要があります。私のデータベースはteradataです。クエリには少なくとも2〜3秒かかります。したがって、キャッシュなどの他のオプションを探します。結果が得られるようにキャッシュを使用します。急いできて。

列は
会社、ID、業界、親... 4 more
検索ページです。したがって、ユーザーが「ja」と入力すると、jaで始まるすべてのアイテムが次のようになります。

会社-------------Id-------------業界--------------親
jaico----- --------222-------------塗料-------------Jaicoasia
ジャミーフルーツ---------- --- 232 ------------- food ------------- jammy International

テーブルには320万行が含まれ、8列が存在します。検索データは8列すべてを返す必要があります。バイト単位で考えると、1行あたり150文字です。したがって、合計バイト数は320万*150文字=480メガバイトです。これだけのデータをキャッシュに保存し、SQLなどの検索クエリ(グループ化、グループ化、並べ替えなど)を実行します。この場合に使用するのに最適なオプションは何ですか。

  1. ehcache
  2. jbossキャッシュ
  3. イニフィニスパン
  4. Apache Lucene

どのオプションが適切かを提案してください。メモリにキャッシュするのが良いですか、それともluceneを使用するのが良いですか?
何をキャッシュする必要がありますか?->これは8列の320万行のテーブルです。
なぜキャッシュするのですか?->検索結果がSQLクエリよりも速くなるようにキャッシュする必要があります。SQLクエリを使用すると非常に時間がかかるため、データのキャッシュに移行したいと思います。

4

1 に答える 1

2

Apache Solr を見てみましょう。適切なデプロイを行うことで、この種のパフォーマンスを得ることができます。たとえば、シャードしてクエリを分散できます。

于 2012-04-05T17:56:08.230 に答える