1.1 什么是 NoSQL


            NoSQL = Not Only SQL( 不仅仅是 SQL) ,也解释为 non-relational( 非关系型数据库 ) 。在NoSQL 数据库中数据之间是无联系的,无关系的。数据的结构是松散的,可变的。



1.2 为什么使用 NoSQL



关系型数据库的瓶颈:



1 )无法应对每秒上万次的读写请求,无法处理大量集中的高并发操作。关系型数据的是



IO 密集的应用。硬盘 IO 也变为性能瓶颈



2 )无法简单地通过增加硬件、服务节点来提高系统性能。数据整个存储在一个数据库中



的。多个服务器没有很好的解决办法,来复制这些数据。



3 )关系型数据库大多是收费的,对硬件的要求较高。软件和硬件的成本花费比重较大。



1.3NoSQL 的优势



1 ) 大数据量,高性能



         NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。关系型数据库(例如 MySQL )使用查询缓存。这 种查询缓存在更新数据后,缓存就是失效了。在频繁的数据读写交互应用中。缓存的性能 不高。 NoSQL 的缓存性能要高的多。



2 ) 灵活的数据模型



         NoSQL 无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直 就是一个噩梦。尤其在快速变化的市场环境中,用户的需求总是在不断变化的。



3 ) 高可用



         NoSQL 在不太影响性能的情况,就可以方便的实现高可用的架构。



         NoSQL 能很好的解决关系型数据库扩展性差的问题。弥补了关系数据(比如 MySQL )在某些方面的不足,在某些方面能极大的节省开发成本和维护成本。



         MySQL 和 NoSQL 都有各自的特点和使用的应用场景,两者结合使用。让关系数据库关注在关系上, NoSQL 关注在存储上。



4 ) 低成本



         这是大多数分布式数据库共有的特点,因为主要都是开源软件,没有昂贵的 License 成本。



1.4NoSQL 的劣势



1 ) 不支持标准的 SQL, 没有公认的 NoSQL 标准



2 ) 没有关系型数据库的约束,大多数也没有索引的概念



3 ) 没有事务,不能依靠事务实现 ACID.



4 ) 没有丰富的数据类型(数值,日期,字符,二进制,大文本等)