美文网首页
MongoDB的初步认识

MongoDB的初步认识

作者: 笙歌如榆 | 来源:发表于2017-10-18 20:00 被阅读0次

MongoDB:面向文档的数据库,每一个json字符串就是一个文档

关系型数据库难实现,有很多挑战。

序列化方案:用文本字段存json字符串,但先变成二进制,变成bson的形式,存入dumps,取出时要loads调差问卷web前端设计网页(传统的方法)

       num:5 

       problems:[  

           {type:"danxuan",time:"...",xuanxiang:"...."},                                                              

          {type:"danxuan",time:"...",xuanxiang:"...."},                                                                      

          {type:"danxuan",time:"...",xuanxiang:"...."},                                                                

          {type:"danxuan",time:"...",xuanxiang:"...."},                                                                       

          {type:"danxuan",time:"...",xuanxiang:"...."},

      ]

   }

table wenjuan< id,author,time,content>

先把要存储的数据转化,即序列化变成一个对象,取得时候先解析数据才能使用而面对大数据,如何扩展数据库:

     提升性能:scale-up(成本太高,配置要求太严格) vs scale-out

集群情况下主键自增的问题:分布式数据库只能加锁,但是还是顺序的存储,根本上还是没有改变。                          

大数据情况下,由集群来实现,就没有主键的问题,MongoDB为每一个记录设置一个id                           

没有结构是MongoDB的特点,无需定义表结构,直接插入数据,即文档(json字符串) 

MongoDB                                  sql

一个文档就是一条记录         一个集合(就是一堆东西放一起,没有固定结构)就是一张表

数据库                                     数据库

server                                      server

优势:

       特点:没有表结构,容易扩展,id非自增,objectid,出生时就考虑集群。

        python,javascript(做前端后台用同一种语言)全栈开发,流行的,用一个语言来整体开发MapReduce分布式,MongoDB可以实现。                        mangodb运维很简单,双机热备自动解决方案,集群添加新的结点

劣势:

         不支持join查询,即不能进行连接查询,不同集合不能进行连接。不支持事务数据非实时写入,数据可能会丢失。

      stu<id,name,stuno,...>

     course<id,name,cridet,...>

      stu_course<id,id_stu,id_course>

    stu{name:lilei,stuno:1101}

    stu{name:cdcd,stuno:1102}

    course{name:math..}

    stu_course{...} {...} {....}

在关系型数据库可以连接,但是mangodb不行

stu_course{

    stu_name:"xiaoming",

    stuno:'20151209032027',

courses:[

    coursename:'math',courseteacher:'xxx',...

    coursename:'english',courseteacher:'xxx',...

    coursename:'hanyu',courseteacher:'xxx',...

...

]

}//这个表浪费空间

course_stu{

    course_name:'english',

    course_credit;4

    students:[

    stu_name:"xiaoming",stuno:'20151209032027',

    stu_name:"yansiyu",stuno:'20151209032033',

    stu_name:"quxiaojuan",stuno:'20151209031017',

   ]

}//这个表也有重复信息冗余

student{name:"..",stuno:".."}

    course{coursename:"..",course_id:"..."}

    course_stu{stuno:"..",}//这种方法开发实现会比较困难。

使用MongoDB进行插入数据的时候,可以通过变量的输入进行。直接插入变量,这种方式简单易于书写。直接在命令窗口输入容易出错。

通过mapreduce的方式存储数据。

       在进行MongoDB的学习中,对索引的引入也是很重要的,老师上课讲了一个问题,当加上索引创建十万条记录和没有索引创建十万条记录那个插入效率快,其实应该想到没有索引插入快,毕竟索引本身也占有物理空间,添加索引在插入的同时还需要记录下位置,插入效率当然慢。但是通过建立索引拉取数据的时候,还是可以明显地看到查询的时间短了很多。

相关文章

  • MongoDB初步认识

    MongoDB下载地址:(windows64位)https://www.mongodb.com/download-...

  • MongoDB的初步认识

    MongoDB:面向文档的数据库,每一个json字符串就是一个文档 关系型数据库难实现,有很多挑战。 序列化方案:...

  • mongodb的初步使用

    1)安装mongodb数据库 以及安装mongoVue可视化工具 http://blog.csdn.net/lup...

  • 初步使用MongoDB

    这回用的mongoDB来保存之前小猪短租的数据。成果: 代码: 再次不想在回想mongodb的配置了,太繁琐了,找...

  • 初步了解MongoDB

    在自己工作学习的过程中,接触到了MongoDB,初步了解一番,感觉挺有趣的。而且感觉自己在数据库领域又多了一些了解...

  • 初步认识

    初识C语言 开始 我从高三毕业假期开始涉及C语言学习,经过了九个月左右的学习,初步认识了这种语言的语法和具体特质。...

  • MongoDb最佳实践系列

    MongoDb开发系列:认识不一样的MongoDb MongoDb的历史,应用领域,行业热衷特点 MongoDB开...

  • MongoDB 初步接触-概念

    因着前两天的一个题目,我开始接触到mongodb,即使全程懵,也算开始了这个探索路程。下面就直接进入到主题吧a. ...

  • 周报 一

    Day 1 熟悉git的分支操作 初步了解MongoDB Day 2 熟悉Linux , git , vim操作 ...

  • Babel的初步认识

    Babel是前端很常用的转码器,更准确地说是转译器,是从源码到源码的转换编译器,例如可以将我们按照ES6标准写的代...

网友评论

      本文标题:MongoDB的初步认识

      本文链接:https://www.haomeiwen.com/subject/odgeuxtx.html