为什么要使用NoSQL

现在无论是很多互联网公司还是很多传统的公司都在进行数字化的改造,企业的应用越来越依赖良好的软件架构,随着大数据与云计算技术的应用,更多的企业将IT架构迁移到了云端。数据库会与各种终端交互,包含网站应用,或者是移动互联网或则是物联网。面对大量的对高并发高可用或者高扩展性的业务需求,企业对于数据库的要求已经让传统的关系数据库不堪重负。
大量的企业需要的数据库架构业务挑战大概包含以下几点:
(1)支持大量用户同时在线高并发访问
(2)在分布式服务架构下能够得到低延迟的访问响应
(3)系统可用性极高
(4)需要存储大量非结构化数据
(5)能够完成快递的更替,能够扩充属性。
我们需要的系统设计是更加灵活的,高度的可用性可、扩展性、可满足大量用户稳定的访问或者是更加灵活的对象存储结构。当传统的关系数据库已经无法满足这样的要求的时候,就可以考虑迁移到NoSQL数据库。
NoSQL的种类很多,与关系数据库的关系并非是对立的,而是互补的,如今的系统架构很难完全脱离关系数据库,企业迁移到NoSQL架构是遇到了关键的技术瓶颈。传统的关系数据库是基于共享的机制,如果要进行数据结构的修改,必须停机进行修改。现在的大量的互联网应用的诞生对应用的需求是多种多样的,无论是谷歌或是亚马逊这类的大公司都有自己的NoSQL的应用,这些NoSQL是对互联网时代企业级应用要求的有力补充。
传统数据库的模式是静态存放数据,这样让应用的迭代变得异常困难,因为它是很难去修改的,这不仅是增加人力和时间就能解决的问题,这样的瓶颈还严重影响到其他的业务。但是NoSQL可以克服这个问题完成迅速的迭代系统,灵活数据库存储模式给数据存储提供了很多方便。
传统的数据库在用户规模较小的情况下还是可以较好的支持业务的,甚至当用户量急剧上升期间也可以采用分表,分库甚至是添加缓存数据系统(例如memcached)来支撑业务,一般能达到这种体量的公司如果用户依旧在增长,这个时候就可以考虑采用NoSQL来缓解数据访问的压力。
这里写图片描述 传统的关系数据库最开始设计就是在单机环境下运行的,因此对分布式的支持需要很多额外的工作,虽然这么多年各大厂商对于关系数据库的运行已经非常成熟,但是如果想要弹性地扩展数据库更多的还是考虑增加单机的性能,例如购买处理器更强的服务器,为了追求极致的性能,可能预算会急剧上升,NoSQL的特点大都是比较原生地支持了分布式数据库,如果把传统数据库服务器的扩展方式比喻成纵向的扩展性能那么NoSQL支持的就是一种横向的扩展计算节点,这样更加弹性的扩充计算能力,也有利于降低成本。

相关文章
相关标签/搜索