mongodb理论

[size=large]前言:
NoSql,对其最为常见的解释是“Not Only SQL”,一种应对纯动态网站的[超大规模]和[高并发需求],目前正得到非常迅猛的发展。非关系型数据库。NoSql的种类很多,有列存储型、图存储型、对象存储型文档存储型...
MongoDB中的mongo取自humongous(巨大)的中间部分,结合DB就成了MongoDB这个名词。顾名思义,它的目的主要是用来处理大量数据,解决海量数据存储的同时又具有良好的查询性能。当然,其实它不是为了取代传统关系型数据库,而是对其补充。因为不是所有的数据都需要二维关系及多表对应的存储和查询,例如:文件的海量存储,只需Key与Value形式的存储及查询。

优点:
Schema-free的文档型数据库。MongoDB的一个库可以有多个Collection(Table),每个Collection是Documents(Records)的集合。Collection和传统关系型数据库的表不同,无需事先定义,随时可以创建。Collection中可以包含具有不同schema的文档记录, 也就是说,上一条记录中的文档有3个属性,而下一条记录的文档可以有10个属性。
数据存储使用JSON格式。MongoDB使用JSON的变种BSON(Binary Serialized Document Notation)作为内部存储,针对它的操作都使用JSON语法风格,客户端提交或接收的数据都使用JSON形式来展现。这样相对于Sql来说,更加直观并容易理解和掌握。

适用场景
MongoDB的主要目标是在key-value的存储方式,以及对传统的关系型数据库系统架起一座桥梁,集两者的优势于一身。它适合用于以下场景:
网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。
高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。
不适用场景
要求高度事务性的系统。
传统的商业智能应用。
复杂的跨文档(表)级联查询。[/size]

你可能感兴趣的:(database)