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