对于SQL数据库(关系型数据库)咱们你们都有所了解,好比MySQL,sqlserver,oracle等数据库。在平常的开发过程当中咱们遇到服务器端的数据存储时几乎第一反应就是使用SQL据库像咱们最多见的Mysql数据库。正则表达式
数据库存在的意义就是存储和读取数据,SQL数据库用二维表存储数据,在使用过程当中咱们会以为这种存储方式能够很形象的表示出数据之间的关系。尤为是SQL语句的出现使得SQL数据库的使用变得更加普遍容易。可是注重严密的数据关系带来的就是拓展性差和大量数据存储时性能的问题。sql
NoSQL数据库(非关系数据库)它的出现就是为了解决上述问题。它去掉了数据之间的关系重视数据的读写使得它在大数据的存储上表现出很棒的性能,数据库
它没有固定的表结构使得它在拓展上表现的很是灵活。json
MongoDB是由C++语言编写的基于分布式文件存储的开源数据库系统是最经常使用的NoSQL数据库也是最像SQL类型的数据库。它采用的数据存储方式是json----key:value方式,在存储数据时不须要提早规定表的结构它的数据存储在文档中(document)大量的文档组成集合(collection)大量的集合组成数据库。数组
MongoDB的数据存储于SQL语句的对照:服务器
MongoDB支持的数据类型有:null、boolean、String、objectId、32位整数、64位整数、64位浮点数、日期、正则表达式、js代码、二进制数据、数组、内嵌文档、最大值、最小值、未定义类型。 oracle
MongoDB最大的特色是他支持的查询语言很是强大,其语法有点相似于面向对象的查询语言,几乎能够实现相似关系数据库单表查询的绝大部分功能,并且还支持对数据创建索引。分布式
MongoDB的使用场景:sqlserver
1:数据的插入,更新和查找。性能
2:适合文档化格式的存储与查询。
3:适合由数十或数百台服务器组成的数据库。
不适用的场景:
1:对于事务型要求比较高的系统。
2:传统的商业智能应用。
3:复杂的表级联查询。
总结:对于实际的项目应用中能够结合数据的特征和数据存储量进行合理的数据库选取,必要时能够结合使用SQL数据库和NoSQL数据库,这样能够极大程度的缓解数据库的性能压力展示数据之间的关系。