圖數據庫有哪些優點?

圖數據庫(Graph Database)是一種以圖結構進行存儲和查詢的數據庫。圖數據庫的關鍵概念是點(代表實體)和邊(代表關係),通過邊將頂點連接在一起,從而進行快速的圖檢索操作。

圖數據庫的優點總結如下:

  1. 使用圖(或者網)的方式來表達現實世界的關係很直接、自然,易於建模。比如某人喜歡看某電影,就可以建立一條邊連接這個人和這部電影,這條邊就叫做“喜歡”邊,同時這個人還可以有其它邊,比如“朋友”邊、“同學”邊等,同樣這個電影也可以有其它邊,比如“導演”邊、“主演”邊等,這樣就構建了自然的關係網。
  2. 圖數據庫可以很高效的插入大量數據。圖數據庫面向的應用領域數據量可能都比較大,比如知識圖譜、社交關係、風控關係等,總數據量級別一般在億或十億以上,有的甚至達到百億邊。mysql不做分表分庫的情況下插入百萬數據基本就慢到不行,圖數據庫基本能勝任億級以上的數據,比如neo4j、titan(janus)、hugegraph等圖數據庫,持續插入十億級的數據基本還能保持在一個較高的速度。
  3. 圖數據庫可以很高效的查詢關聯數據。傳統關係型數據庫不擅長做關聯查詢,特別是多層關聯(比如查我的好友的好友有哪些人),因爲一般來說都需要做表連接,表連接是一個很昂貴的操作,涉及到大量的IO操作及內存消耗。圖數據庫對關聯查詢一般都進行鍼對性的優化,比如存儲模型上、數據結構、查詢算法等,防止局部數據的查詢引發全部數據的讀取。
  4. 圖數據庫提供了針對圖檢索的查詢語言,比如Gremlin、Cypher等圖數據庫語言。圖查詢語言大大方便了關聯分析業務的持續開發,傳統方案在需求變更時往往要修改數據存儲模型、修改複雜的查詢腳本,圖數據庫已經把業務表達抽象好了,比如上面的2層好友查詢,Gremlin實現爲g.V(me).out(‘friend’).out(‘friend’),如果需要改爲2層同學查詢,那調整一下把好友換爲同學即可g.V(me).out(‘classmate’).out(‘classmate’)。
  5. 圖數據庫提供了專業的分析算法、工具。比如ShortestPath、PageRank、PersonalRank、Louvain等等,不少圖數據庫還提供了數據批量導入工具,提供了可視化的圖顯示界面,使得數據的分析結果更加直觀展示出來。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章