-1

こんばんは。

そのため、さまざまな場所に関する情報を保存する必要があります。各場所には、タイトル、カテゴリ、場所などのさまざまな情報があります。問題は、約 5000 万の場所があり、タイトル、カテゴリ、および場所 (通り、国などで構成される) でそれらを検索する必要があることです。

MySql と mongoDB をインストールしましたが、他の代替手段も受け入れられます。また、サーバーには現在2GBしかありません(後で増やします-RAMを増やすか、クラスターを増やすかもしれません...しかし後で)、それで十分かどうかわかりません。HDDスペースは十分すぎるはずです。

私のアイデアのいくつかは、場所ごとにタグを作成し、タグで検索することでした(タグは検索に使用するフィールドであり、インデックスが作成されます)が、それが良いアイデアであるかどうか、またどのように実装するのが良いかはわかりません.

それを実装する方が良い方法について何か提案はありますか? すべての情報を 1 回だけ入力し、検索にのみ使用します。

PS: 現在のテスト バージョンでは、JAVA の MySql データベースを JDBC と共に使用しています (ただし、JPA ソリューションよりも高速です)。

4

1 に答える 1

1

5,000 万行は中規模と考えます。確かに「大規模」ではなく、MySQL または Mongo DB の処理能力の範囲内です。

SQL (MySQL など) と NoSQL (Mongo DB など) のどちらを選択するかは、パフォーマンス要件、クエリ パターン、シャーディング要件 (ここでは Mongo DB が強力)、チームの経験など、さまざまな考慮事項に基づいて決定する必要があります。慣れていないデータベースのすべての操作タスクを適切に習得するには、かなりの学習曲線があります。

必要な RAM の量は、ワーキング セットによって決まります。通常、1 日を通してアクセスされるレコードの数です。一部のレコードが頻繁にアクセスされ (カリフォルニア州ロサンゼルス)、他のレコードがあまり頻繁にアクセスされない場合 (カリフォルニア州ロスバノス)、すべてのレコードが同じ確率でアクセスされる場合よりも、全体的なパフォーマンスを向上させるために必要なメモリは少なくて済みます。必要な RAM の量を計画できるように、プロセスの早い段階でパフォーマンス測定を行います。

地理的検索では、フリーテキスト入力を許可すると、ユーザーは不完全な情報や部分的に間違った情報を提供することがよくあります。タグは実際には役に立ちません。

場所の選択肢を構造化された方法 (ドロップダウン メニューなど) で表示する場合は、場所の主キーを「タグ」として使用できます。

于 2013-03-19T21:19:49.643 に答える