Cypher に焦点を当てた非常に興味深いチュートリアルに参加した後、Cypher クエリ言語の宣言性に驚きました。私の意見では、これは Neo4J からデータを取得する非常に自然な方法です。
それまでは、ネイティブ API しか使用していませんでした。それはあまり宣言的ではありませんが、しばらくすると慣れます。複雑な構造はすべて非常に似ており、私の特定のプロジェクトの詳細のみが異なります。
それでも、私には Cypher の方が自然に見えたので、主に Cypher クエリを使用してデータベースとやり取りするアプリケーションの 2 番目のバージョンを構築することを検討しています。しかし、問題が発生しました。
アプリケーションを Cypher に変換する方法は数多くあります。いくつかの可能なクエリを試した後、すべて望ましい結果が得られましたが、最速のクエリでさえ、ネイティブ API よりも約 20 倍遅いようです。
さて、宣言性のためにいくらかのパフォーマンスをあきらめてもかまいませんが、すでにパフォーマンスに苦しんでいるアプリケーションでは、20 倍は少し多すぎます。この問題の回避策はありますか? それとも、ネイティブ API を使用する必要がありますか?