我們選擇了四個較流行的圖形資料庫進行實驗對比。測試中會提供Python 程式碼段以顯示如何使用每個資料庫,之後我們將執行一個快速的基準測試,我們將在i7-6700 CPU @ 3.40GHz 上執行10 000 次我們的示例查詢,然後比較各個圖形資料庫所需的時間及評價其效能。
以下為四種圖形資料庫效能對比原創總結,詳細對比了各個資料庫的優缺點,以及原文作者做出的總結推薦:
圖形資料庫 | 語言 | 時間 | 優點 | 缺點 | 總結推薦 | |
---|---|---|---|---|---|---|
Cayle | Go | 50 秒 | 乾淨簡潔的設計 | 1. 視覺化UI不能正常工作,使用起來不是很直觀專案的記錄仍然很差,Python客戶端不完整 | — | |
— | — | — | — | 2. 專案文件編制完善度很低,Python客戶端不完整 | 過於年輕且文件編制完善度很低,不推薦應用於生產 | |
Neo4j | Java | 17 秒 | 1.成熟的企業解決方案以及額外的功能(監控,備份,改進查詢) | python客戶端不提供強大的API,它只允許直接使用名為Cypher的Neo4j的內部語言執行請求 | Neo4j 功能齊全,速度敏捷,還有強大的查詢語言及另外許多功能,可以滿足使用圖資料庫的最常使用場景。缺點是官方的Python客戶端功能薄弱 | |
— | — | — | 2. 語法容易閱讀,容易學習 | — | — | |
— | — | — | 3. 結果記錄易於顯示和分析,是Python dict 包含建立時指定的欄位 | — | — | |
ArangoDB | C++ | 26 秒 | 1. 靈活多樣的資料庫模型,支援文件,圖形和鍵值對儲存 | 1.如果想用自己的指令碼實現同等性,需要自己編寫“獲取或建立”方法 | ArangoDB 是開發者和使用者最友好的資料庫,是圖形資料庫進行快速測驗的最佳選擇。除了圖形儲存以外,其文件儲存也將使您的生產資料管理更加輕鬆方便,可以安全地用於在CG生產環境中 | |
— | — | — | 2. 資料庫建立非常簡單直爽 | 2. 還是一個年輕的資料庫 | — | |
— | — | — | 3. 可以在雲基礎設施上輕鬆部署,並幫助構建REST API | — | — | |
— | — | — | 4. ArangoDB 的圖形儲存基於其自己的文件儲存系統, 每個頂點都作為json條目儲存在一個集合中 | — | — | |
— | — | — | 5. 查詢可進行配置(例如,您可以選擇深度優先遍歷)ArangoDB 提供了一個遍歷物件,允許您構建特定的路徑,還有其他的助手,如最短路徑查詢或路徑長度檢索,可以滿足圖形查詢的大部分需求 | — | — | |
— | — | — | 6. 查詢結果記錄易於顯示和分析 | — | — | |
— | — | — | 7. ArangoDB 和Python 客戶端很容易理解,而且文件編制完善 | — | — | |
— | — | — | 8. 在ArangoDB Web UI中視覺化您的圖形, 使資料儲存更容易 | — | — | |
— | — | — | 9. 其開發公司非常活躍,並提供很多的額外支援專案 | — | — | |
OrientDB | Java | — | — | — | 由於使用者反饋問題,我們未對其進行測試 |
結論: ArangoDB 是我們這組測試中最喜歡的資料庫,如果正在考慮使用圖形資料庫,建議首選測試ArangoDB。