Neo4j權威指南之Cypher查詢調優

基礎知識補充:模式(patterns)java

  • 能夠講不少節點和關係編碼成任意複雜的想法
  • Cypher很依賴模式
  • 將節點和關係的語法組合在一塊兒能夠表達模式
  • 加強模塊性,減小重複,能夠給模式賦值變量
  • 模式就是一組節點和關係的組合
acted_in = (:Person)-[:ACTED_IN]->(:Movie)

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《性能優化

一、手動查詢性能優化總目標:只從圖中檢索必要數據性能

二、沒必要要的數據,儘量早的過濾掉,減小後期處理的數據量優化

三、避免返回整個節點,返回其中須要的數據編碼

四、設置可變長度模式的一個上限值,避免包含大量不須要的數據部分code

五、Cypher會爲每一個查詢轉爲一個執行計劃索引

  • 使用參數代替字面值,這樣能夠複用執行計劃

六、Neo4j兩種執行計劃策略資源

(1)規則編譯

  • 查詢計劃器產生查詢計劃的規則
  • 會使用全部可用索引,但不實用統計信息指導查詢編譯

(2)成本性能分析

七、查詢性能分析

(1)EXPLAIN

  • 僅僅查看執行計劃,不執行語句

(2)PROFILE

  • 運行語句,並全程監督資源使用狀況

八、USING 語句

  • 爲一個查詢構建執行計劃時,影響計劃器的決定

九、可使用USING 使得計劃器選擇一個特定的開始節點

十、提示器分三種:

(1)索引提示

(2)掃描提示

  • 強制Cypher不使用本應使用的索引,而使用標籤掃描

(3)鏈接提示

  • 再沒有更好的開始點的狀況下,可能選擇不好的開始點
  • 鏈接提示強制選擇開始點

相關文章
相關標籤/搜索