0

私は MS SQL ベースのアプリケーションを持っています。その主な目標は、会社のテーブルを検索することです。この会社のテーブルには、検索可能な列がいくつかあります。会社名、住所、郵便番号、緯度、経度など。

現在、速度が必要なため、これを Redis DB ベースのアプリケーションに変換することを考えています。これを適切に行うためにどのアプローチを取るべきか、誰かが私を助けることができますか? Redis DB をどのようにセットアップすればよいですか? そして、会社名に技術が含まれ、緯度 x-0.5 と緯度 x+0.5 および経度 y-0.5 と経度 y+0.5 の間にあるすべての企業を見つけるには、どのように照会すればよいでしょうか?

それとも、Redis は、このタイプまたは検索に使用するのに最適な NOSQL データベースではないのでしょうか? 他のおすすめも大歓迎です。

4

1 に答える 1

1

Redis は、正確なキーがわかっている場合は非常に高速なキー/値ストアですが、特定の値または値の範囲について複数のキーを検索するのは非常に苦手です。したがって、Redis を使用することはお勧めしません。

GPS 座標で検索する場合は、特に地理空間検索用の豊富な API を備えているMongoDBを使用することをお勧めします。

高速で機能豊富な全文検索が必要な場合は、データベース自体ではなく、他のデータベースと統合するためのツールであるLuceneを検討する必要があります。

ところで、「NoSQL は高速です」というスローガンは単純化しすぎています。特定のデータベースが特定の前提の下で特定のタスクをどのリレーショナル データベースよりもはるかに高速に実行できることは事実ですが、その逆の場合もあります。

MSSQL データベースのパフォーマンスを改善するために、あらゆる可能性を既に使用したと確信していますか?

  • すべての検索で適切なインデックスを使用していますか?
  • 明示的なセカンダリ キーで作成したすべての JOIN はありますか?
  • データベースは適切に正規化されていますか?
  • 正規化を破る必要がある場合でも、データベース設計をリファクタリングすることで、コストのかかる操作を回避できますか?
于 2013-09-05T11:20:36.383 に答える