2

リレーショナル データベースに提供するのと同じレベルのクエリ チューニング サポートを Neo4j で提供したいと考えています。多くのチューニングの問題はデータ設計によって解決するのが最善であることは理解していますが、オプティマイザーを支援する必要がある場合もあります。Neo4j 2.2.5 のオプティマイザとクエリ チューニングに関するドキュメントはあまりないため、Neo4j での Cypher クエリ チューニングに関するいくつかの質問に答えてくれる人を期待しています。

1) オプティマイザー: リレーショナル DBMS では、オプティマイザーがより適切な決定を下すのに役立つ 1 つの方法は、統計を更新することです。コストベースのオプティマイザーがどのように決定を下すかについてのドキュメントは見つかりませんが、ルールベースのオプティマイザーから得られるよりも優れた答えを見つけるために、データに関する統計を収集する必要があると思います.

を。これらの統計を更新する方法はありますか?

b. 読み込み済みで読み取り専用にしようとしているデータベースのインデックスを削除して再作成すると、パフォーマンスが向上しますか?

c. オプティマイザーが下す決定を理解するのに役立つ可能性のある、オプティマイザーに関するドキュメントを知っていますか?

2) クエリ レベルのヒント: Cypher にインデックス ヒントのオプションがあることは知っていますが、多くの場合、TSQL で使用できる「強制順序」クエリ ヒントと同等のものがあると便利です。Neo4j の近い将来のリリースで、そのようなクエリのヒントを期待する必要があるかどうか知っていますか?

3) 一時オブジェクト: リレーショナル DBMS では、オプティマイザの制限に合わせなければならないことがあります。そのような場合、一時オブジェクトを作成してデータの一部を具体化し、クエリを簡素化できるようにします。Neo4j の近い将来のリリースで、一時的なラベルやその他の一時的なオブジェクトが利用可能になるという兆候はありますか?

ありがとう

4

1 に答える 1