NoSQL数据库应该怎么选取?
2013-11-12 11:38
363 查看
从2010年NoSQL在国内渐渐兴起,众多的开源NoSQL百花齐放,如MongoDB、 CounchDB、Redis、 Hbase... 往往在开发新项目时由于没有历史包袱,这些新兴起技术被应用也最为频繁。
在此想请教大家在开发项目时,是根据什么情况来判断,应该使用NoSQL而不是MySQL等关系型数据库呢? 同时也希望大家分享下,NoSQL在不同应用场景中的实践经验
开发中经常遇到是否使用NOSQL的选择。抉择机制如下:
分析你的业务是否对事务一致性,读写实时性,复杂查询有需求。如果某些数据有这方面需求能否将其拆分成有需求和没需求的两块。
在应用NOSQL之前,想想系统架构设计上能否进行优化,例如读写分离,逻辑切分,数据库分片。利用纯内存key-value数据库来进行告诉缓存。从头应用Nosql对于研发和运维的技术要求很高,你的业务能否承担长时间不推出新功能以及各种运维事故的代价。
其中MemCached 是没有持久存储的,可以用来做高速缓存。基本上是使用最广的NOSQL方案。
TokyoTyrant 是有持久存储的,Qzone社交游戏和日本最大的SNS网站Mixi.jp都使用.
HandleSocket 可以同MySQL无缝集成,是现有方案升级的一个好方案
Membase 被Zynga 使用来做社交游戏的存储。
Redis实际上存储的是结构化数据,功能相对较多,可以针对特定类型数据进行操作,使用者较多,有新浪微博,飞信。
Key-文档存储: CouchDB,MongoDB,Riak
存储结构化的文档,可以用来做比较灵活的应用。
淘宝,CraigList,Foursquare,大众点评在使用MongoDB.
GitHub,MochiMedia 使用Riak
BigTable类: HBase,Cassandra,Voldemort
主要用在海量数据处理和存储
Facebook的消息数据库使用HBase
优酷的数据分析使用HBase
Linkedin使用Voldemort
Twitter,Digg.com 使用Cassandra.
国内开源的主要有豆瓣的BeansDB和淘宝的OceanBase,应用案例不多。
方案。在应用过程中不要盲目相信网上的评测,还是要自己进行测试,并且灌入自己的
真实数据进行实际操作,才能得到可靠的结果。
然后在架构设计中考虑好如何动态扩展,灾难恢复和数据备份如何实现,现有系统如何
迁移。
NoSQL数据库探讨之一 - 为什么要用非关系数据库?
NoSQL生态系统
来源:http://www.dewen.org/q/220
在此想请教大家在开发项目时,是根据什么情况来判断,应该使用NoSQL而不是MySQL等关系型数据库呢? 同时也希望大家分享下,NoSQL在不同应用场景中的实践经验
开发中经常遇到是否使用NOSQL的选择。抉择机制如下:
规划需求
首先统计你目前的应用规模,包括单位时间存取次数,记录条数,记录占用硬盘空间大小。并基于你的业务在半年以内的增长速度,找到系统的瓶颈是在高并发读写上还是在海量数据的高效存储和访问上。例如每秒上万次读写请求,上亿条记录的表,上T的多媒体数据。分析你的业务是否对事务一致性,读写实时性,复杂查询有需求。如果某些数据有这方面需求能否将其拆分成有需求和没需求的两块。
在应用NOSQL之前,想想系统架构设计上能否进行优化,例如读写分离,逻辑切分,数据库分片。利用纯内存key-value数据库来进行告诉缓存。从头应用Nosql对于研发和运维的技术要求很高,你的业务能否承担长时间不推出新功能以及各种运维事故的代价。
选择方案
Key-Value 存储: MemCached,TokyoTyrant,HandleSocket,MemBase,Redis其中MemCached 是没有持久存储的,可以用来做高速缓存。基本上是使用最广的NOSQL方案。
TokyoTyrant 是有持久存储的,Qzone社交游戏和日本最大的SNS网站Mixi.jp都使用.
HandleSocket 可以同MySQL无缝集成,是现有方案升级的一个好方案
Membase 被Zynga 使用来做社交游戏的存储。
Redis实际上存储的是结构化数据,功能相对较多,可以针对特定类型数据进行操作,使用者较多,有新浪微博,飞信。
Key-文档存储: CouchDB,MongoDB,Riak
存储结构化的文档,可以用来做比较灵活的应用。
淘宝,CraigList,Foursquare,大众点评在使用MongoDB.
GitHub,MochiMedia 使用Riak
BigTable类: HBase,Cassandra,Voldemort
主要用在海量数据处理和存储
Facebook的消息数据库使用HBase
优酷的数据分析使用HBase
Linkedin使用Voldemort
Twitter,Digg.com 使用Cassandra.
国内开源的主要有豆瓣的BeansDB和淘宝的OceanBase,应用案例不多。
实际操作
然后根据自己的业务类型分析,以及性能指标,迁移难易程度来选择适合自己的NoSQL方案。在应用过程中不要盲目相信网上的评测,还是要自己进行测试,并且灌入自己的
真实数据进行实际操作,才能得到可靠的结果。
然后在架构设计中考虑好如何动态扩展,灾难恢复和数据备份如何实现,现有系统如何
迁移。
参考文献
NoSQL 35应用场景NoSQL数据库探讨之一 - 为什么要用非关系数据库?
NoSQL生态系统
来源:http://www.dewen.org/q/220
相关文章推荐
- [VB.NET]想在vb.net用曲线显示数据库中的数据,应该怎么办?
- 关系型数据库的性能扩展思路及NoSQL产品的选取标准
- NoSQL 数据库你应该了解的 10 件事
- 关于 NoSQL 数据库你应该了解的 10 件事
- 组合索引应该怎么选取引导列?
- 数据库连接出错了应该怎么办呢
- 组合索引怎么应该怎么选取引导列?
- 关系型数据库的性能扩展思路及NoSQL产品的选取标准
- 数据库主键选取策略|数据库怎么设计主键
- 组合索引怎么应该怎么选取引导列?
- 专家解读应该如何定义NoSQL数据库?
- 关于 NoSQL 数据库你应该了解的 10 件事
- 当数据库中字段设计为smalint或者tinyint后,程序中要求字段为枚举型,应该怎么设置
- 产品经理应该怎么做??
- 架构实战项目心得(六):后台服务nosql数据库mongodb
- NoSQL:从关系型数据库到非关系型数据库
- C++中虚函数的作用是什么?它应该怎么用呢?
- 07_NoSQL数据库之Redis数据库:Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存
- 关系型数据库和NoSQL的对比表格
- NoSQL非关系型数据库 笔记