プロジェクトで OrientDB を使用していますが、本当に気になるのはパフォーマンスです。私はそれをテストするために、500 000 人と 500 000 の興味、および人と人のランダムな関係 (2 496 540 の関係)、および人と興味 (3 322 060 の関係) を含むビッグデータを作成しました。
私がする必要があるのは、頂点とエッジをトラバースすることです。グレムリンやってみた 友達が 100 人未満の場合、相互の友達を得るのに約 10 ~ 20 秒かかりますが、友達が数千人いる場合、これは機能せず、時間がかかりすぎます。
g.v(id).both('KNOWS').as('here').both('KNOWS').has('id', '10:20').back('here').dedup.email
友達が 100 人未満の場合、友達を推薦するのに約 40 ~ 50 秒かかりますが、何千人もの友達がいる場合も同じです。
x=[g.v(id)];g.v(id).both('KNOWS').aggregate(x).both('KNOWS').except(x).dedup.email
これらは、OrientDB がそのようなトラバースを高速に実行するための方法ですか?
OrientDB SQL トラバースは深さ優先トラバースのみをサポートし、2 人の人物の間で共通の友人を見つけることは不可能に思われ、友人の推奨は複雑です。私は何か見落としてますか?
ご回答有難うございます!