我們選擇了四個(gè)較流行的圖形數(shù)據(jù)庫(kù)進(jìn)行實(shí)驗(yàn)對(duì)比。測(cè)試中會(huì)提供Python 代碼段以顯示如何使用每個(gè)數(shù)據(jù)庫(kù),之后我們將運(yùn)行一個(gè)快速的基準(zhǔn)測(cè)試,我們將在i7-6700 CPU @ 3.40GHz 上運(yùn)行10 000 次我們的示例查詢(xún),然后比較各個(gè)圖形數(shù)據(jù)庫(kù)所需的時(shí)間及評(píng)價(jià)其性能。
以下為四種圖形數(shù)據(jù)庫(kù)性能對(duì)比原創(chuàng)總結(jié),詳細(xì)對(duì)比了各個(gè)數(shù)據(jù)庫(kù)的優(yōu)缺點(diǎn),以及原文作者做出的總結(jié)推薦:
圖形數(shù)據(jù)庫(kù) | 語(yǔ)言 | 時(shí)間 | 優(yōu)點(diǎn) | 缺點(diǎn) | 總結(jié)推薦 | |
---|---|---|---|---|---|---|
Cayle | Go | 50 秒 | 干凈簡(jiǎn)潔的設(shè)計(jì) | 1. 可視化UI不能正常工作,使用起來(lái)不是很直觀項(xiàng)目的記錄仍然很差,Python客戶(hù)端不完整 | -- | |
-- | -- | -- | -- | 2. 項(xiàng)目文檔編制完善度很低,Python客戶(hù)端不完整 | 過(guò)于年輕且文檔編制完善度很低,不推薦應(yīng)用于生產(chǎn) | |
Neo4j | Java | 17 秒 | 1.成熟的企業(yè)解決方案以及額外的功能(監(jiān)控,備份,改進(jìn)查詢(xún)) | python客戶(hù)端不提供強(qiáng)大的API,它只允許直接使用名為Cypher的Neo4j的內(nèi)部語(yǔ)言執(zhí)行請(qǐng)求 | Neo4j 功能齊全,速度敏捷,還有強(qiáng)大的查詢(xún)語(yǔ)言及另外許多功能,可以滿(mǎn)足使用圖數(shù)據(jù)庫(kù)的最常使用場(chǎng)景。缺點(diǎn)是官方的Python客戶(hù)端功能薄弱 | |
-- | -- | -- | 2. 語(yǔ)法容易閱讀,容易學(xué)習(xí) | -- | -- | |
-- | -- | -- | 3. 結(jié)果記錄易于顯示和分析,是Python dict 包含創(chuàng)建時(shí)指定的字段 | -- | -- | |
ArangoDB | C++ | 26 秒 | 1. 靈活多樣的數(shù)據(jù)庫(kù)模型,支持文檔,圖形和鍵值對(duì)存儲(chǔ) | 1.如果想用自己的腳本實(shí)現(xiàn)同等性,需要自己編寫(xiě)“獲取或創(chuàng)建”方法 | ArangoDB 是開(kāi)發(fā)者和用戶(hù)最友好的數(shù)據(jù)庫(kù),是圖形數(shù)據(jù)庫(kù)進(jìn)行快速測(cè)驗(yàn)的最佳選擇。除了圖形存儲(chǔ)以外,其文檔存儲(chǔ)也將使您的生產(chǎn)數(shù)據(jù)管理更加輕松方便,可以安全地用于在CG生產(chǎn)環(huán)境中 | |
-- | -- | -- | 2. 數(shù)據(jù)庫(kù)創(chuàng)建非常簡(jiǎn)單直爽 | 2. 還是一個(gè)年輕的數(shù)據(jù)庫(kù) | -- | |
-- | -- | -- | 3. 可以在云基礎(chǔ)設(shè)施上輕松部署,并幫助構(gòu)建REST API | -- | -- | |
-- | -- | -- | 4. ArangoDB 的圖形存儲(chǔ)基于其自己的文檔存儲(chǔ)系統(tǒng), 每個(gè)頂點(diǎn)都作為json條目存儲(chǔ)在一個(gè)集合中 | -- | -- | |
-- | -- | -- | 5. 查詢(xún)可進(jìn)行配置(例如,您可以選擇深度優(yōu)先遍歷)ArangoDB 提供了一個(gè)遍歷對(duì)象,允許您構(gòu)建特定的路徑,還有其他的助手,如最短路徑查找或路徑長(zhǎng)度檢索,可以滿(mǎn)足圖形查詢(xún)的大部分需求 | -- | -- | |
-- | -- | -- | 6. 查詢(xún)結(jié)果記錄易于顯示和分析 | -- | -- | |
-- | -- | -- | 7. ArangoDB 和Python 客戶(hù)端很容易理解,而且文檔編制完善 | -- | -- | |
-- | -- | -- | 8. 在ArangoDB Web UI中可視化您的圖形, 使數(shù)據(jù)存儲(chǔ)更容易 | -- | -- | |
-- | -- | -- | 9. 其開(kāi)發(fā)公司非常活躍,并提供很多的額外支持項(xiàng)目 | -- | -- | |
OrientDB | Java | -- | -- | -- | 由于用戶(hù)反饋問(wèn)題,我們未對(duì)其進(jìn)行測(cè)試 |
結(jié)論: ArangoDB 是我們這組測(cè)試中最喜歡的數(shù)據(jù)庫(kù),如果正在考慮使用圖形數(shù)據(jù)庫(kù),建議首選測(cè)試ArangoDB。
原文鏈接: https://medium.com/@cgwire/cg...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40838.html
摘要:加上內(nèi)部函數(shù)被返回,被其他對(duì)象引用,形成了閉包,因此對(duì)應(yīng)的變量對(duì)象存在于閉包函數(shù)的作用域鏈中。因此訪問(wèn)次數(shù)越多,費(fèi)用越高,頁(yè)面性能就會(huì)受到很大影響。盡管還主動(dòng)執(zhí)行了一次操作,曲線也沒(méi)有下降。 副標(biāo)題:常見(jiàn)的JavaScript內(nèi)存泄露 這是關(guān)于JavaScript內(nèi)存泄露相關(guān)的序列文章中一篇。由于時(shí)間有限更新進(jìn)度會(huì)有點(diǎn)慢,但會(huì)持續(xù)更新的。自己也在學(xué)習(xí)中,難免對(duì)某些知識(shí)點(diǎn)的理解不是很正確...
摘要:向開(kāi)發(fā)控制臺(tái)打印一條消息,常用來(lái)在開(kāi)發(fā)時(shí)調(diào)試分析。所以最好不要在生產(chǎn)環(huán)境中任何對(duì)象。因此最好不要在頁(yè)面中任何大對(duì)象,這樣可能會(huì)影響頁(yè)面的整體性能,特別在生產(chǎn)環(huán)境中。 console.log:向web開(kāi)發(fā)控制臺(tái)打印一條消息,常用來(lái)在開(kāi)發(fā)時(shí)調(diào)試分析。有時(shí)在開(kāi)發(fā)時(shí),需要打印一些對(duì)象信息,但發(fā)布時(shí)卻忘記去掉console.log語(yǔ)句,這可能造成內(nèi)存泄露。 在傳遞給console.log的對(duì)象是...
閱讀 1808·2021-09-03 10:50
閱讀 1339·2019-08-30 15:55
閱讀 3381·2019-08-30 15:52
閱讀 1242·2019-08-30 15:44
閱讀 954·2019-08-30 15:44
閱讀 3326·2019-08-30 14:23
閱讀 3559·2019-08-28 17:51
閱讀 2298·2019-08-26 13:52