本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Neptune 最佳實務使用 openCypher 和 Bolt
使用 openCypher 查詢語言和 Bolt 通訊協定搭配 Neptune 時,請遵循這些最佳實務。如需在 Neptune openCypher 中使用 的相關資訊,請參閱 使用 存取 Neptune 圖形 openCypher。
主題
- 在容錯移轉之後建立新連線
- 適用於長期命應用的連線處理
- 的連線處理 AWS Lambda
- 偏好查詢中的定向至雙向邊緣
- Neptune 不支援交易中的多個並行查詢
- 完成後關閉驅動程式物件
- 使用明確的交易模式進行讀取和寫入
- 例外狀況的重試邏輯
- 使用單一SET子句一次設定多個屬性
- 使用參數化查詢
- 在UNWIND子句中使用平面對應,而不是巢狀對應
- 在變數長度路徑 (VLP) 運算式中,將更嚴格的節點放在左側
- 使用精細的關係名稱,避免多餘節點標籤檢查
- 盡可能指定邊緣標籤
- 盡可能避免使用 WITH 子句
- 在查詢中儘早放置限制性篩選條件
- 明確檢查是否存在屬性
- 請勿使用具名路徑 (除非必要)
- 避免 COLLECT(DISTINCT())
- 擷取所有屬性值時,偏好透過個別屬性查詢的屬性函數
- 在查詢之外執行靜態運算
- 使用 UNWIND 而非個別陳述式的批次輸入
- 偏好使用自訂IDs的節點/關係
- 避免在查詢中進行 ~id 運算
在容錯移轉之後建立新連線
如果發生容錯移轉,Bolt 驅動程式可以繼續連線至舊寫入器執行個體,而不是新的作用中執行個體,因為DNS名稱解析為特定的 IP 地址。
若要避免這種情況發生,請在任何容錯移轉之後關閉 Driver
物件,然後重新連線該物件。
適用於長期命應用的連線處理
建置長期應用程式時,例如在容器或 Amazon EC2執行個體上執行的應用程式,請初始化Driver
物件一次,然後在應用程式的生命週期內重複使用該物件。Driver
物件是安全執行緒,初始化執行緒的額外負荷很大。
的連線處理 AWS Lambda
由於其連線額外負荷和管理需求,不建議在 AWS Lambda 函數內使用螺栓驅動程式。請改用 HTTPS 端點。