1
什么是圖數(shù)據(jù)庫
圖數(shù)據(jù)庫是基于數(shù)學(xué)里圖論的思想和算法而實(shí)現(xiàn)的高效處理復(fù)雜關(guān)系網(wǎng)絡(luò)的新型數(shù)據(jù)庫系統(tǒng)。
圖數(shù)據(jù)庫的數(shù)據(jù)存儲方式就像將其繪制出來一樣-Nodes通過Relationships所定義的關(guān)系相連起來,形成關(guān)系型網(wǎng)絡(luò)結(jié)構(gòu),展示了每個多帶帶的實(shí)體如何與其他實(shí)體聯(lián)系或相互關(guān)聯(lián)。
2
圖數(shù)據(jù)庫擅長做什么-與傳統(tǒng)關(guān)系型數(shù)據(jù)庫相比
關(guān)系查詢更佳:圖形數(shù)據(jù)庫善于高效處理大量的、復(fù)雜的、互連的、多變的數(shù)據(jù)。其計算效率遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫。
傳統(tǒng)關(guān)系型數(shù)據(jù)庫在查詢關(guān)系問題上最簡單的方法就是建立一個關(guān)系模型,如下圖:
圖中展示了一個非常簡單的關(guān)系模型,當(dāng)我們想就這個關(guān)系模型查詢關(guān)系深度為1的關(guān)系(比如小明的朋友)時可使用
進(jìn)行查詢
深度為1的查詢,關(guān)聯(lián)關(guān)系并不復(fù)雜,MySQL執(zhí)行起來壓力不大,語句也很容易編寫,但是如果將深度提到2(也就是查詢小明朋友的朋友時)語句已經(jīng)開始變長,再進(jìn)一步將深度提升到3時,MySQL查詢也會開始產(chǎn)生壓力。
有一個很有意思的測試,一分別通過關(guān)系型數(shù)據(jù)和圖數(shù)據(jù)庫在一個社交網(wǎng)絡(luò)里找到最大深度為5的關(guān)系。他們的數(shù)據(jù)集包括100萬人,每人約有50個朋友。實(shí)驗(yàn)結(jié)果如下:
當(dāng)查詢的關(guān)系深度達(dá)到3時,MySQL的查詢效率便開始被Neo4j圖數(shù)據(jù)庫甩開。
至于為什么Neo4j的關(guān)系查詢能力能夠優(yōu)于傳統(tǒng)關(guān)系型數(shù)據(jù)庫,則需要去了解它是如何存儲數(shù)據(jù)的。
3
圖數(shù)據(jù)庫Neo4j的存儲結(jié)構(gòu)
節(jié)點(diǎn)、關(guān)系與屬性
原生圖存儲(nativegraph storage)
一般認(rèn)為具有"無索引鄰接"特性的圖數(shù)據(jù)庫才稱為原生圖數(shù)據(jù)。
假設(shè)要查詢與某個點(diǎn)有對應(yīng)關(guān)系的所有點(diǎn)時,首先查到該點(diǎn)的ID,通過該ID計算該點(diǎn)的存儲偏移位置,從存儲文件中獲取到該點(diǎn)的信息,然后從該點(diǎn)的信息中獲取到該點(diǎn)nextRelId數(shù)據(jù)即該點(diǎn)第一個關(guān)系的ID,根據(jù)這個ID計算該關(guān)系存儲偏移量,從存儲文件中獲取該關(guān)系數(shù)據(jù),判斷是否為需要查詢的關(guān)系,若為所要查詢的,則獲取該關(guān)系的secondNode即該關(guān)系的終節(jié)點(diǎn)ID,若為其他節(jié)點(diǎn)則保存該ID,查詢到所有數(shù)據(jù)返回關(guān)系及節(jié)點(diǎn)。
綜上所述Neo4j關(guān)系查詢的核心便在relationship(關(guān)系)的存儲上,一條關(guān)系存儲的數(shù)據(jù)包括上一條邊、下一條邊、關(guān)系/邊的起始節(jié)點(diǎn)與結(jié)束節(jié)點(diǎn),當(dāng)查詢某一個點(diǎn)某一條關(guān)系時只需查詢到該點(diǎn)所對應(yīng)的第一條關(guān)系/邊,然后根據(jù)這條關(guān)系上所存儲的下一條關(guān)系以及關(guān)系的開始節(jié)點(diǎn)與終節(jié)點(diǎn)進(jìn)行查詢即可。
Neo4j中node、relationship、property以鏈表的形式存儲了本記錄及上一條或下一條記錄的相關(guān)信息,保證了關(guān)系遍歷的效率。
關(guān)于Neo4j的介紹就到這里。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129958.html
摘要:宋體當(dāng)云計算如火如荼的肆意展現(xiàn)時代風(fēng)采的時候,大數(shù)據(jù)已經(jīng)悄然的出現(xiàn)在這個巨大的舞臺中央。對于云計算來說,大數(shù)據(jù)在云平臺上盡情展現(xiàn)那風(fēng)華絕代的容姿,為客戶帶去大數(shù)據(jù)深埋的價值,將是云計算送給所有云時代用戶們最精彩的表演。 當(dāng)云計算如火如荼的肆意展現(xiàn)時代風(fēng)采的時候,大數(shù)據(jù)已經(jīng)悄然的出現(xiàn)在這個巨大的舞臺中央。對于云計算來說,大數(shù)據(jù)在云平臺上盡情展現(xiàn)那風(fēng)華絕代的容姿,為客戶帶去大數(shù)據(jù)深埋的價值,將是...
摘要:更嚴(yán)重的是,會導(dǎo)致信息系統(tǒng)的失控。實(shí)現(xiàn)了數(shù)據(jù)的同步交換和共享,從而簡化多余流程,消除重復(fù)工作,有效提升工作效率和精度。工作流將大大深化系統(tǒng)的應(yīng)用,讓系統(tǒng)發(fā)揮出全新的價值。而不具有工作流特點(diǎn)的系統(tǒng),將很快被時代所拋棄。 一、工作流1.0時代終結(jié)OA系統(tǒng)的應(yīng)用正在不斷深化,正在逐漸完成從無紙化到智能化的轉(zhuǎn)變,作為OA系統(tǒng)應(yīng)用的核心,工作流技術(shù)也同樣發(fā)生了很大的轉(zhuǎn)變。 我們知道,對工作流比較...
摘要:近日,數(shù)據(jù)云服務(wù)企業(yè)新數(shù)科技宣布完成千萬元首輪融資,本輪融資由天創(chuàng)資本領(lǐng)投,白澤資本原以太資本擔(dān)任財務(wù)顧問,資金將主要用于云數(shù)據(jù)庫新型管理平臺等軟件產(chǎn)品的研發(fā)投入行業(yè)生態(tài)體系建設(shè)和人才引進(jìn)等方面。近日,數(shù)據(jù)云服務(wù)企業(yè)新數(shù)科技宣布完成千萬元首輪融資,本輪融資由天創(chuàng)資本領(lǐng)投,白澤資本(原以太資本)擔(dān)任財務(wù)顧問,資金將主要用于云數(shù)據(jù)庫新型管理平臺等軟件產(chǎn)品的研發(fā)投入、行業(yè)生態(tài)體系建設(shè)和人才引進(jìn)等方...
摘要:創(chuàng)新加速了云計算在中國的普及,中橋調(diào)研顯示,中國近企業(yè)級用戶將在混合云環(huán)境下運(yùn)營,公有云快速成為核心資源。云計算高動態(tài)高自動化的資源部署和管理,讓用戶能夠靈活根據(jù)業(yè)務(wù)需求,進(jìn)行實(shí)時近實(shí)時交付,從而最大限度降低投入。數(shù)字化時代,創(chuàng)新快速成為數(shù)字經(jīng)濟(jì)增長最重要的驅(qū)動力。近年來,各國政府都出臺了相應(yīng)創(chuàng)新戰(zhàn)略和規(guī)劃,以推動自身經(jīng)濟(jì)可持續(xù)發(fā)展,提升國家在全球的競爭力。無論是德國的《新高科技戰(zhàn)略–為德國...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20