为什么nosql数据库,这么火?它的出现解决了哪些问题?

为什么nosql数据库,这么火?它的出现解决了哪些问题?

问题描述:

为什么nosql数据库,这么火?它的出现解决了哪些问题?

例如mogodb

我感觉楼上说的第一点根本不是理由,那文章的作者之所以选择nosql的根本原因是因为它现在的开发没有复杂的多表关联查询,如果以后业务复杂了,作者自然就会后悔当初的选择了。因为现在所谓的nosql数据库的原型就是我们当年的dBase,Foxpro之类的索引式数据库。当年用这类数据库开发复杂查询时的痛苦经历不堪回首。
nosql最大的特点就是对于单表数据可以海量分布式高速查询,且可以存储各种类型的数据。
而我们平时所用的关系型数据库由于要维护各种表关联关系,因此无论是读写速度还是存储格式都有很大的限制。
但这并不意味着nosql可以取代它,因为它的多表关联存储,复杂查询等是nosql无法替代的(即使有模拟实现也是无实用价值的)。所以真正的应用场合都是关系型数据库和nosql类的同时使用。把主键关联信息保存在关系型数据库中,海量数据保存在nosql中。

以下是百度对mongodb的说明:

其主要场景如下:
1)网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
2)缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。
3)高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。
不适用的场景如下:1)要求高度事务性的系统。
2)传统的商业智能应用。
3)复杂的跨文档(表)级联查询。

在项目设计的初期,我当时有了这样的想法,同时也是在满足下面几个条件的情况下来选择最终的nosql方案的:

1、需求变化频繁:开发要更加敏捷,开发成本和维护成本要更低,要能够快速地更新进化,新功能要在最短的周期内上线。
2、客户端/api支持,因为这直接影响开发效率
3、部署简单
4、扩展能力强
5、节省系统资源,对cpu等资源耗费较小

http://www.2cto.com/database/201404/290132.html