开发中经常遇到是否使用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
方案。在应用过程中不要盲目相信网上的评测,还是要自己进行测试,并且灌入自己的
真实数据进行实际操作,才能得到可靠的结果。
然后在架构设计中考虑好如何动态扩展,灾难恢复和数据备份如何实现,现有系统如何
迁移。
相关推荐
NoSQLBooster for MongoDB是一款强大的管理工具,专为优化MongoDB操作而设计,其前身为Mongobooster,是开发人员和数据库管理员进行高效数据库管理和维护的理想选择。 NoSQLBooster提供了一系列功能,旨在提升...
其次,明确所需存储类型,根据业务需求选择最适合的NoSQL数据库类型。最后,结合业务场景进行深度定制和优化,如利用NoSQL数据库的复制协议进行数据同步、故障恢复等,充分发挥NoSQL数据库的优势,为应用提供强有力...
1. **数据模型**:根据应用程序的数据结构和需求选择合适的NoSQL数据库类型。 2. **扩展性**:评估数据库的扩展能力和成本。 3. **一致性需求**:根据业务需求确定是否需要强一致性。 4. **成熟度和支持**:选择一个...
在选择适用于企业的NoSQL解决方案时,首先需要理解NoSQL的分类和架构特点。NoSQL数据库大致可以分为四类:键值存储(Key-Value)、列式存储(Column-Family)、文档存储(Document-Oriented)以及图数据库(Graph-...
* MongoDB 和 HBase 的选择:根据实际应用场景和性能要求选择合适的数据库 知识点9: 数据库安全 * 数据库安全的考虑因素:身份验证、访问控制、数据加密等 * 数据库安全的措施:使用强密码、限制访问权限、使用...
### 电子书如何选择NoSQL数据库 #### 一、NoSQL数据库概述 随着大数据时代的来临,数据处理的需求急剧增加,企业对于数据管理系统的扩展性和性能提出了更高的要求。NoSQL(Not Only SQL)数据库应运而生,作为一种...
1. **NoSQL数据库的分类和选择**:书中可能会讲解各种类型的NoSQL数据库,如MongoDB(文档型)、Cassandra(列族)、Redis(键值对)、Neo4j(图形)等,并指导读者如何根据业务场景选择合适的数据库。 2. **NoSQL...
2. 数据模型:NoSQL数据库的数据模型灵活多样,可根据具体需求选择最适合的数据结构,如文档、键值、列族或图形。 3. 弱一致性:为了实现高并发和低延迟,NoSQL通常采用弱一致性模型,牺牲了ACID(原子性、一致性、...
在选择NoSQL时,需结合具体业务场景,考虑数据模型、数据一致性要求、读写性能等因素,合理权衡利弊。 总结来说,NoSQL数据库提供了应对大数据时代的新思路,对于需要处理大规模、高并发、动态数据的企业和开发者而...
NoSQL(Not Only SQL)是一种非关系型数据库技术,它在21世纪初随着大数据和分布式...总之,NoSQL是应对大数据和高并发场景的有效解决方案,但选择是否使用NoSQL,应根据项目需求、数据类型和业务场景进行综合考虑。
3. **NoSQL数据库分类**:深入讲解了不同类型NoSQL数据库的特点和适用场景,帮助读者根据具体需求选择合适的技术。 4. **最佳实践**:分享了实施NoSQL项目时的一些最佳实践,包括数据建模技巧、性能优化方法等。 5. ...
项目开发部分,作者会分享如何在实际项目中选择合适的NoSQL数据库,设计高效的数据模型,以及优化查询性能。这部分内容对于开发者来说尤其实用,可以帮助他们避免常见陷阱,提升项目实施效率。 总的来说,《NoSQL...
NoSQL(Not Only SQL)是一种非关系型数据库技术,它在大数据处理、分布式系统和实时应用等场景下表现出了强大的...在实际应用中,应根据项目需求和团队能力,综合考虑是否采用NoSQL,并选择最适合的数据库解决方案。
在选择NoSQL数据库时,需要根据具体的应用场景和需求来决定。例如,如果需要高吞吐量的读写操作,可以选择键值存储;如果数据结构较为复杂,文档数据库可能是更好的选择。开发者需要根据业务需求,权衡数据模型的...
因此,在选择NoSQL数据库时,需根据具体业务需求进行权衡。 在“常用开源NoSQL原理与应用.ppt”中,可能涵盖了以上各类NoSQL数据库的详细介绍、优缺点分析以及实际案例研究。同时,提供的“ITFriend.txt”文件可能...
8. **选择NoSQL的决策因素**:选择NoSQL还是RDBMS取决于具体的应用场景。考虑因素包括数据规模、性能需求、数据结构的复杂性、一致性要求以及团队的技术背景。 通过阅读《NoSQL精粹》中文版和英文版,读者可以深入...
NosqlBooster的易用性和高效性使得它成为管理MongoDB数据库的理想选择。 NosqlBooster的主要特点包括: 1. **数据浏览与编辑**:通过其清晰的界面,你可以查看、添加、修改和删除MongoDB集合中的文档,支持JSON...