S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

关于NoSQL,你必须知道的九件事

Posted on 2014-12-18 22:02 S.l.e!ep.¢% 阅读(327) 评论(1)  编辑 收藏 引用 所属分类: MongoDB

关于NoSQL,你必须知道的九件事

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.  你得理解,有的方案是拥有分区容忍性的,有的方案不一定有。

Feedback

# re: 关于NoSQL,你必须知道的九件事  回复  更多评论   

2014-12-19 09:03 by cpper
说的玄而又玄

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理