国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

大數據時代的新型數據庫--圖數據庫 Neo4j

IT那活兒 / 2361人閱讀
大數據時代的新型數據庫--圖數據庫 Neo4j

1

什么是圖數據庫

圖數據庫是基于數學里圖論的思想和算法而實現的高效處理復雜關系網絡的新型數據庫系統。

圖數據庫的數據存儲方式就像將其繪制出來一樣-Nodes通過Relationships所定義的關系相連起來,形成關系型網絡結構,展示了每個多帶帶的實體如何與其他實體聯系或相互關聯。

2

圖數據庫擅長做什么-與傳統關系型數據庫相比


關系查詢更佳:圖形數據庫善于高效處理大量的、復雜的、互連的、多變的數據。其計算效率遠遠高于傳統的關系型數據庫。

傳統關系型數據庫在查詢關系問題上最簡單的方法就是建立一個關系模型,如下圖:

圖中展示了一個非常簡單的關系模型,當我們想就這個關系模型查詢關系深度為1的關系(比如小明的朋友)時可使用

進行查詢

深度為1的查詢,關聯關系并不復雜,MySQL執行起來壓力不大,語句也很容易編寫,但是如果將深度提到2(也就是查詢小明朋友的朋友時)語句已經開始變長,再進一步將深度提升到3時,MySQL查詢也會開始產生壓力。


有一個很有意思的測試,一分別通過關系型數據和圖數據庫在一個社交網絡里找到最大深度為5的關系。他們的數據集包括100萬人,每人約有50個朋友。實驗結果如下:

當查詢的關系深度達到3時,MySQL的查詢效率便開始被Neo4j圖數據庫甩開。

至于為什么Neo4j的關系查詢能力能夠優于傳統關系型數據庫,則需要去了解它是如何存儲數據的。

3

圖數據庫Neo4j的存儲結構


節點、關系與屬性

一個圖數據庫中的數據由節點(node)和將節點連接起來的關系(relationship)組成,節點(node)和關系(relationship)中又包含一個或多個屬性(property)。節點有擁有若干標簽,關系帶有類型。

原生圖存儲(nativegraph storage

一般認為具有"無索引鄰接"特性的圖數據庫才稱為原生圖數據。

neo4j的節點、關系和屬性分別保存在neostore.nodestore.db、neostore.relationshipstore.db和neostore.propertystore.db文件中,在neo4j中,點、關系和屬性等圖的組成元素都是基于neo4j內部維護的ID進行訪問的,數據結構如下圖:
節點(指向聯系和屬性的單向鏈表,neostore.nodestore.db):
inUse:表示是否被使用的標志位。
nextRelId:代表關聯到這個節點的第一個關系的ID。
nextPropId:代表第一個屬性ID。
labels:是代表當前節點的標簽,指向該節點的標簽存儲。
extra:作為保留位。
關系(雙向鏈表,neostore.relationshipstore.db):
inUse:代表是否被使用的標志位。
firstNode:表示起始節點的ID
secondNode:表示結束節點的ID
relationshipType:表示關系類型
firstPrevRelId:表示起始頂點上前一個邊記錄
firstNextRelId:表示起始頂點上后一個邊記錄
secPrevRelId:表示終止頂點上前一個邊記錄
secNextRelId:表示終止頂點上后一個邊記錄
指向前后邊記錄的4個指針形成了兩個“關系雙向鏈”
nextPropId:是邊上的第1個屬性的id
firstInChainMarker:表示該邊記錄是否是“關系鏈”中第1條記錄
一個Byte存輔助信息,即前后屬性結構ID的高位信息
一個Int存前一個屬性
一個Int存下一個屬性


假設要查詢與某個點有對應關系的所有點時,首先查到該點的ID,通過該ID計算該點的存儲偏移位置,從存儲文件中獲取到該點的信息,然后從該點的信息中獲取到該點nextRelId數據即該點第一個關系的ID,根據這個ID計算該關系存儲偏移量,從存儲文件中獲取該關系數據,判斷是否為需要查詢的關系,若為所要查詢的,則獲取該關系的secondNode即該關系的終節點ID,若為其他節點則保存該ID,查詢到所有數據返回關系及節點。

綜上所述Neo4j關系查詢的核心便在relationship(關系)的存儲上,一條關系存儲的數據包括上一條邊、下一條邊、關系/邊的起始節點與結束節點,當查詢某一個點某一條關系時只需查詢到該點所對應的第一條關系/邊,然后根據這條關系上所存儲的下一條關系以及關系的開始節點與終節點進行查詢即可。

Neo4j中node、relationship、property以鏈表的形式存儲了本記錄及上一條或下一條記錄的相關信息,保證了關系遍歷的效率。

關于Neo4j的介紹就到這里。


END


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129958.html

相關文章

  • 云計算?數據?SaaS回歸

    摘要:宋體當云計算如火如荼的肆意展現時代風采的時候,大數據已經悄然的出現在這個巨大的舞臺中央。對于云計算來說,大數據在云平臺上盡情展現那風華絕代的容姿,為客戶帶去大數據深埋的價值,將是云計算送給所有云時代用戶們最精彩的表演。 當云計算如火如荼的肆意展現時代風采的時候,大數據已經悄然的出現在這個巨大的舞臺中央。對于云計算來說,大數據在云平臺上盡情展現那風華絕代的容姿,為客戶帶去大數據深埋的價值,將是...

    Crazy_Coder 評論0 收藏0
  • PHPOA辦公系統:新型工作流引擎4.0,快速提升OA辦公方式

    摘要:更嚴重的是,會導致信息系統的失控。實現了數據的同步交換和共享,從而簡化多余流程,消除重復工作,有效提升工作效率和精度。工作流將大大深化系統的應用,讓系統發揮出全新的價值。而不具有工作流特點的系統,將很快被時代所拋棄。 一、工作流1.0時代終結OA系統的應用正在不斷深化,正在逐漸完成從無紙化到智能化的轉變,作為OA系統應用的核心,工作流技術也同樣發生了很大的轉變。 我們知道,對工作流比較...

    afishhhhh 評論0 收藏0
  • 新型數據云服務企業新數科技完成千萬元Pre-A輪融資

    摘要:近日,數據云服務企業新數科技宣布完成千萬元首輪融資,本輪融資由天創資本領投,白澤資本原以太資本擔任財務顧問,資金將主要用于云數據庫新型管理平臺等軟件產品的研發投入行業生態體系建設和人才引進等方面。近日,數據云服務企業新數科技宣布完成千萬元首輪融資,本輪融資由天創資本領投,白澤資本(原以太資本)擔任財務顧問,資金將主要用于云數據庫新型管理平臺等軟件產品的研發投入、行業生態體系建設和人才引進等方...

    DoINsiSt 評論0 收藏0
  • 創新加速云計算普及和技術演進

    摘要:創新加速了云計算在中國的普及,中橋調研顯示,中國近企業級用戶將在混合云環境下運營,公有云快速成為核心資源。云計算高動態高自動化的資源部署和管理,讓用戶能夠靈活根據業務需求,進行實時近實時交付,從而最大限度降低投入。數字化時代,創新快速成為數字經濟增長最重要的驅動力。近年來,各國政府都出臺了相應創新戰略和規劃,以推動自身經濟可持續發展,提升國家在全球的競爭力。無論是德國的《新高科技戰略–為德國...

    Betta 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<