咱們選擇了四個較流行的圖形數據庫進行實驗對比。測試中會提供Python 代碼段以顯示如何使用每一個數據庫,以後咱們將運行一個快速的基準測試,咱們將在i7-6700 CPU @ 3.40GHz 上運行10 000 次咱們的示例查詢,而後比較各個圖形數據庫所需的時間及評價其性能。python
如下爲四種圖形數據庫性能對比原創總結,詳細對比了各個數據庫的優缺點,以及原文做者作出的總結推薦:數據庫
圖形數據庫 | 語言 | 時間 | 優勢 | 缺點 | 總結推薦 | |
---|---|---|---|---|---|---|
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。json
原文連接: https://medium.com/@cgwire/cg...安全