Posted on 2014-12-18 22:02
S.l.e!ep.¢% 閱讀(483)
評論(1) 編輯 收藏 引用 所屬分類:
MongoDB
1.? 理解ACID與BASE的區別(ACID是關系型數據庫強一致性的四個要求,而BASE是NoSQL數據庫通常對可用性及一致性的弱要求原則,它們的意思分別是,ACID:atomicity, consistency, isolation, durability;BASE:BasicallyAvailable, Soft-state, Eventually Consistent。同時有意思的是ACID在英語里意為酸,BASE意思為堿)
2.? 理解持久化與非持久化的區別。這么說是因為有的NoSQL系統是純內存存儲的。
3.? 你必須意識到傳統有關系型數據庫與NoSQL系統在數據結構上的本質區別。傳統關系型數據庫通常是基于行的表格型存儲,而NoSQL系統包括了列式存儲(Cassandra)、key/value存儲(Memcached)、文檔型存儲(CouchDB)以及圖結構存儲(Neo4j)
4.? 與傳統關系數據庫有統一的SQL語言操作接口不同,NoSQL系統通常有自己特有的API接口。
5.? 在架構上,你必須搞清楚,NoSQL系統是被設計用于成百上千臺機器的集群中的,而非共享型數據庫系統的架構。
6.? 在NoSQL系統中,可能你得習慣一下不知道你的數據具體存在何處的情況。
7.? 在NoSQL系統中,你最好習慣它的弱一致性。”eventually consistent”(最終一致性)正是BASE原則中的重要一項。比如在Twitter,你在Followers列表中經常會感受到數據的延遲。
8.? 在NoSQL系統中,你要理解,很多時候數據并不總是可用的。
9.? 你得理解,有的方案是擁有分區容忍性的,有的方案不一定有。