多くの同様のアイテム (数百万) を含むアプリケーションを作成し、それらを MySQL データベースに格納したいと考えています。これは、多くの統計を行い、特定の列の特定の値を検索したいからです。
しかし同時に、たくさんつながった二分木のような構造 (推移閉包) で関連しているすべての項目間の関係を保存しますが、関係データベースはそのような構造が苦手なので、保存したいと思います。この種のデータに対して優れたパフォーマンスを発揮する Neo4j のすべての関係。
私の計画は、MySQL データベースのリレーションを除くすべてのデータとitem_id
、Neo4j データベースに保存されたすべてのリレーションを保持することです。ツリーを検索したいときは、最初にNeo4jでitem_id
ツリー内のすべての:sを検索し、次に、次のようなクエリで指定されたすべてのアイテムをMySQLデータベースで検索します。
SELECT * FROM items WHERE item_id = 45 OR item_id = 345435 OR item_id = 343 OR item_id = 78 OR item_id = 4522 OR item_id = 676 OR item_id = 443 OR item_id = 4255 OR item_id = 4345
これは良い考えですか、それとも私は非常に間違っていますか? 以前にグラフデータベースを使用したことがありません。私の問題に対するより良いアプローチはありますか?この場合、MySQL クエリはどのように実行されますか?