推薦系統概述node
圖數據庫的基本思想
1.圖(Graph)由節點(node,頂點)和關係(relationship,邊)組成
2.圖在節點上記錄數據(節點的屬性,property)
3.節點由關係組織成圖,關係也具備屬性
4.尋路(traversal,遍歷)在圖上定位由節點組成的路徑
5.索引(index)將屬性映射到節點或關係
6.圖數據庫管理系統管理圖,及其上的索引
7.Nel4J 是當前主流的圖數據庫產品數據庫
Neo4J: 開源圖數據庫
1.直觀的圖模型存儲
2.徹底支持ACID事務
3.基於磁盤的持久存儲
4.支持海量數據,好比數十億節點/關係/屬性級別的數據
5.高可用的分佈式集羣
6.高度優化,迅速的圖查詢(Cypher圖查詢語言,面向尋路)
7.能夠嵌入(jar文件),支持REST API網絡
分佈式:
share nothing: 每一個節點都有本身的CPU,內存,存儲,跨節點的數據訪問經過節點之間的網絡通信來完成併發
share disk : 每一個節點有本身的CPU和年平常,可是共享同一個存儲,也就是說,存儲只有一份,放在單獨的分佈式文件系統上, 由文件系統自己來保證其可用性,通常由高端的專門存儲設備來完成分佈式
大部分的分佈式數據庫都是share nothing的, 比較典型的share disk 數據庫有ORACLE ,DB2 .
MYSQL cluster 的節點之間不共享存儲(每一個節點都有本身的存儲),因此MYSQL是share nothing學習
share disk: 實現更復雜些,價格更昂貴.優化
補充學習: MySQL 存儲引擎(MyISAM、InnoDB、NDBCluster)spa
大樹葉原文博客: 文章分別介紹了MYSQL 的三種引擎分別適用的業務範圍,以及各自的特色..net
MyISAM: 不支持事務,表鎖,支持全文索引,日誌
InnoDB: 支持事務,行鎖,5.6後支持全文索引,四個隔離級別
NDBCluster:支持事務, 不支持全文索引,只支持 read committed
Atomic,原子:同一個事務裏,要麼都提交,要麼都回滾;
Consistency,一致性:即在事務開始以前和事務結束之後,數據庫的完整性約束沒有被破壞;
Isolation,隔離:併發事務間的行數據是彼此隔離的;
Durability,持久:事務提交後,全部結果務必被持久化。
MySQL支持事務的存儲引擎:Innodb,NDBcluster,TokuD
MySQL不支持事務的存儲引擎:myisam ,memory
1.隔離性經過鎖的方式實現
2.原子性,一致性,持久性經過數據庫的redo和undo來完成
撤銷日誌,undo log 沒提交的事務撤銷
重作日誌,redo log 檢查已經提交沒有持久化的事務重作