2015-10-19 203 views
1

我想提供相同級別的Neo4j中針對關係數據庫提供的查詢調優支持。我知道很多調優問題最好通過數據設計來解決,但有時候您只需要幫助優化器。關於Neo4j 2.2.5中的優化器和查詢調優沒有太多文檔,所以我希望有人可以幫我回答一些關於Neo4j中的Cypher查詢調優的問題。Neo4j Cypher查詢調整

1)優化器:在關係數據庫管理系統中,幫助優化器做出更好決策的一種方法是更新統計數據。我找不到有關基於成本的優化器如何做出決策的文檔,但我希望它必須收集有關數據的一些統計信息,以便得出比我們從基於規則的優化器中獲得的更好的答案。

a。有沒有辦法更新這些統計數據?

b。我是否可以通過刪除和重新創建我們已經加載並即將只讀的數據庫的索引來獲得任何性能優勢?

c。你知道優化器上的任何文檔可以幫助我理解它做出的決定嗎?

2)查詢級別提示:我知道Cypher可以選擇索引提示,但是在很多情況下,如果它具有與TSQL中提供的「Force Order」查詢提示等效的功能,那麼這很有用。你知道我是否應該在Neo4j的不久的將來的版本中對這種查詢提示抱有希望?

3)臨時對象:在關係數據庫管理系統中,有時我只需要將自己與優化器中的限制協調一致。在這些情況下,我們創建臨時對象來實現部分數據,這樣我們就可以簡化查詢。是否有跡象表明臨近標籤或其他臨時對象將在近期發佈的Neo4j中可用?

謝謝

+0

所有好問題!我想指出,如果您還不知道 –

回答

0

您可以使用配置文件或解釋,以及有多少分貝點擊你有。你只需要努力保持數據庫命中率低。

你也可以使用「USING INDEX n:Swedish(surname)」,所以你知道neo4j將被迫使用索引。

您可以使用PLANNER RULE或Planner成本。

+0

謝謝,您可以'PROFILE' /'解釋'您的查詢。我知道配置文件並解釋選項和索引提示。我正在專門查找有關統計信息,索引重建,查詢級別提示和臨時對象等更高級別的調整手段的信息。 –

+0

我認爲你應該測試它。 – Mvde