1

ここで、neo4j と mysql の両方を使用しないようにアドバイスする別の質問を読んだにもかかわらず ( neo4j - リレーショナル データベースと一緒にグラフ データベースを使用しますか? )、グラフのようにモデル化できるデータを持つデータセットにはどのアプローチが最適か疑問に思っていました。残りはリレーショナルに見えます。何らかの理由で、使用している種類のデータを投稿できません。

リレーショナル部分をneo4jに押し込むことはできますが、見栄えが悪く複雑に見えるので、避けたいと思います。

一方、両方を一緒に使用すると、結果を得るために 2 倍の量のクエリを実行する必要があり、パフォーマンスが低下します (DB が別のマシンのクラウド上にあると仮定します)。

クエリの 1 つが約 20 ~ 30 の深さを必要とするため、mysql だけでは処理できないため、mysql だけを使用することはできません。

以前にそのような状況に遭遇した人はいますか? もしそうなら、どのように解決しましたか?

4

1 に答える 1

1

他の誰もが言うように、「モデル化しようとしているデータについてより良いアイデアを提供してください。そうすれば、最善の提案をすることができます」.

そうは言っても、2 つの DB を扱うことは問題ではなく、人々が考えているよりも一般的です。多くの場合、検索にフルテキスト ストアを使用してからドキュメント ID のリストを取得し、それをリレーショナル DB に追加して検索します。メタデータ。または、Redis をヒットして ID のリストを取得し、リレーショナル DB をヒットしてさらにデータを取得します。

私はあなたのソーシャル ネットワークに基づいてターゲットを絞った検索を行うための Neo4j+MySQL のシステムの概念実証を行いました (「私のネットワークが推奨しているすべてのレストランを深さ順に並べて表示します (たとえば、1 番目のレベルの友人のレコは 2 番目のレベルよりも高く重み付けされている、など)。ぎこちなく感じることはありませんでしたが、縮尺も合っていませんでした。

両方のデータストアの同期を維持する必要があります。したがって、私の場合、ユーザーが Web アプリ (MySQL に挿入する) 上の場所を推奨する場合は、向きを変えて、Neo に同じ挿入を行う必要があります。おそらくこれも非同期で行いたいので、ワーカーでメッセージ キューを設定する必要があります。

于 2013-10-14T21:55:53.857 に答える