【MongoDB】简介

来源:互联网 发布:剑灵御姐灵女捏脸数据 编辑:程序博客网 时间:2024/05/15 10:15

       忽然间,nosql就流行起来了,公司最近的微信的数据库是用的mongoDB.


基本介绍:

       主要应用于web开发,也就是网站的开发。

       nosql的优点:

              1、对数据库高并发读写的需求

              2、对海量数据高效率存储和访问的需求

              3、对数据库的高可扩展性和高可用性的需求

       在以上的三个优点面前,sql型数据库的如下优点可能并不满足web的要求:

              1、数据库事务一致性的要求

              2、数据库的写实性和读实时性的需求

              3、对复杂的sql查询,对多表关联查询的需求


        NOSQL数据库的打破了SQL型数据库的ACID理论。


 认识mongoDB

       

         他支持的数据结构是非常松散的,是类似json的bjson的格式,因此可以存储比较复杂的数据类型,他的最大的特点是查询语言的能力非常的强大,几乎可以实现类似关系数据库单表查询的绝大部分的功能,还支持建立索引。他是一个面向集合的,模式自由的文档型数据库。


         说起他,自然而然的说起他是面向集合的,数据存储在数据集中,这样就是一个集合,同时还是模式自由的,文档型的。


         他的特点和功能也是很强大的,面向集合存储,模式自由,支持动态查询,支持索引,支持复制和故障恢复,使用高效的二进制数据存储,包括大型对象,自动处理碎片,以支持云计算层次的扩展性,支持很多种语言,文件存储的格式为bson等等。。


         什么的场景比较适合他呢?当数据量很大,但是价值比较低,当数据比较实时,当需要用于对象及json数据的存储的时候,同时需要跨平台,就可以用他了。


安装:

     

        如下是按照教程:mongoDB在window环境下的安装


结构:

         先说一下逻辑结构:

         主要是由文档(document)、集合(collection)、数据库(database)组成。

         文档相当于关系型数据库的一行记录

         多个文档组长集合,相当于关系型数据库的表

         多个集合组织在一起,相当于数据库



                      



     看一下安装的结构:

      

   



         其中data用来存储数据(数据库和日志)的,在他的db的下面,就是数据库了,每一个数据库都包含.ns和一些数据文件,这些数据文件会随着数据的增多而增多。


数据分配问题


         mongoDB内部有预分配空间的机制,每一个预分配的文件都用0进行填充,由于这个机制,mongoDB始终保持额外的空间和剩余的数据文件,从而避免数据多而对磁盘的压力过大的问题。


        当由于表中的数据量的增加,数据文件每次新分配一次的时候,他的大小都会是上一个数据文件大小的2倍,每一个数据文件最大的是2g,这样的机制有利于防止较小的数据库浪费过多的磁盘空间。数据库的每一张表都对应一个命名空间,每一个索引页有对应的命名空间,这些空间的元素都是集中在*.ns文件中的。比如test这个数据包中包含了三个存储表和索引的数据,则test.2是预分配的空间,test1和test0是为了相应的盘区对应不同的名字空间的。


        每一个命名空间可以包含多个不同的盘区,这些盘区并不是连续的,与数据文件的增长相同,每一个命名空间对应的盘区大小也是随着分配的次数不断增长的。这样做的目的是为了平衡命名空间的良妃和保持一个命名空间的连续性。


        以前一直也不怎么了解,甚至现在都不太懂为什么他就是大数据的福利了,期待以后的更深层次的了解。





1 0
原创粉丝点击