<p>Nosql的全称为”notonlysql”,为非关系型数据库。这类数据库的主要特点是:非关系型、分布式、开源的、水平可扩展的。Nosql最典型的应用为key-value存储。Nosql的最主要的用途是大数据的处理,这个问题在传统的关系型数据库中有严重的系统瓶颈,而nosql的诞生很好的解决了这个问题。传统的数据库在应付web2.0网站,特别是超大规模和高并发的网站的时候,暴漏除了很多的问题。1、Highperformance(对数据库高并发读写的需求)因为web2.0的网站要根据用户的需求实时生成动态页面和提供动态的信息,所以基本上不能使用页面缓存的技术。因此数据库的并发负载特别高。所以要应付上万次并发的读写请求,传统数据库就有点力不从心了。2、HighStorage(对海量数据的高效存储和访问需求)对于一些大型的网站,每天都要产生海量的信息,以国外的fackbook为例,每个月就要达到2.4亿条数据,对于关系型数据库来说,一张表存储2.5亿条数据,然后再对其查询,其效率是极其低下的。3、HighScalability&&HighAvailability(高扩展性和高可用性需求)在一个web结构中,数据库是很难横向扩展的。当一个系统的用户量和访问量增长特别大的时候,你没有办法像webservice那样通过简单的添加硬件和服务节点来扩展性能和负载能力。往往要进行数据迁移,这个事情对于很多DBA来说是比较痛苦的。Nosql的全称为”notonlysql”,为非关系型数据库。这类数据库的主要特点是:非关系型、分布式、开源的、水平可扩展的。Nosql最典型的应用为key-value存储。Nosql的最主要的用途是大数据的处理,这个问题在传统的关系型数据库中有严重的系统瓶颈,而nosql的诞生很好的解决了这个问题。传统的数据库在应付web2.0网站,特别是超大规模和高并发的网站的时候,暴漏除了很多的问题。1、Highperformance(对数据库高并发读写的需求)因为web2.0的网站要根据用户的需求实时生成动态页面和提供动态的信息,所以基本上不能使用页面缓存的技术。因此数据库的并发负载特别高。所以要应付上万次并发的读写请求,传统数据库就有点力不从心了。2、HighStorage(对海量数据的高效存储和访问需求)对于一些大型的网站,每天都要产生海量的信息,以国外的fackbook为例,每个月就要达到2.4亿条数据,对于关系型数据库来说,一张表存储2.5亿条数据,然后再对其查询,其效率是极其低下的。3、HighScalability&&HighAvailability(高扩展性和高可用性需求)在一个web结构中,数据库是很难横向扩展的。当一个系统的用户量和访问量增长特别大的时候,你没有办法像webservice那样通过简单的添加硬件和服务节点来扩展性能和负载能力。往往要进行数据迁移,这个事情对于很多DBA来说是比较痛苦的。关系型数据库的缺点1、对于海量数据,关系型数据库对于实时性这点来说是很难做到的,如果想做到,必须增加数据库服务器,而数据库服务器有很多文件,例如:控制文件、数据文件、日志文件等。特别是控制文件的结构特别复杂,增加服务器就涉及到备份数据库,这个工作将是很庞大的。而且有的时候,需要涉及到添加硬件。这就需要消耗大量的资金。2、关系型数据库一次读取,需要消耗很多资源。例如:先打通数据库的连接,再开启会话,然后发送请求即sql语句。数据库内部解析SQL语句也是一个比较复杂的过程。如果碰到一次性大批量的数据的读写要求,这对关系型数据库是很难做到效率比较高的。1、对于海量数据,关系型数据库对于实时性这点来说是很难做到的,如果想做到,必须增加数据库服务器,而数据库服务器有很多文件,例如:控制文件、数据文件、日志文件等。特别是控制文件的结构特别复杂,增加服务器就涉及到备份数据库,这个工作将是很庞大的。而且有的时候,需要涉及到添加硬件。这就需要消耗大量的资金。2、关系型数据库一次读取,需要消耗很多资源。例如:先打通数据库的连接,再开启会话,然后发送请求即sql语句。数据库内部解析SQL语句也是一个比较复杂的过程。如果碰到一次性大批量的数据的读写要求,这对关系型数据库是很难做到效率比较高的。</p>