mongodb系列01--基础篇
来源:互联网 发布:淘宝客拉人进群技巧 编辑:程序博客网 时间:2024/06/07 00:23
今年入职花旗,刚进来leader 就交待我去研究mongodb,搭建mongodb分布式集群,之前没有接触过这一块硬着头皮开始学习mongodb。 到现在已经过去4个月了,今天把学习mongodb的过程中的一些知识和体会写下来供大叫参考,当然主要可能还是我自己看。 关于mongodb集群环境的搭建大家可以看我的另一篇博客,我给出了mongodb测试环境集群的详细地搭建过程,当然也给出了高可用分布式生产环境集群的架构策略。
因为入职一个月之后新人需要开一个技术演说的session,我的选题就是mognodb的研究,这里我会配合我的PPT进行讲解,这个过程会涉及很多基础的计算机知识,相信大家看了应该是大有帮助
我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
MongoDB[1] 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。类似于json的bson组成---二进制形式的json,MongoDB 文档类似于 JSON 对象 。因此可以存储比较复杂的数据类型。字段值可以包含其他文档,数组及文档数组。
在mongodb中基本的概念是文档、集合、数据库,下面我们挨个介绍
时间换空间
我们可以对比sql和mongodb来了解一下,在关系型数据库中数据库下的基本单位是table,而在mongodb中是用collection,一行数据对应的是mongodb中的一个文档,这就是为什么我们称mongodb为面向文档的数据库,我们注意到mongodb中不存在表连接的情况,关系型数据库的典型特征是表之间存在关联关系,mongodb不存在这种表连接语句,那么文档之间的一对一地以对多,多对多的情况mongodb可以通过在字段中嵌套一个或多个文档来实现这种关系,我认为这是一种以空间换时间的做法,比如有两张表用户表和商品表,一个用户对应多个商品,假设想要查询一个用户下的所有商品信息,在关系型数据库的查询中需要链表查询join,我们知道join必然会带来很多磁盘随机度的操作,随机读无法像顺序读那样的局部性好,缓存效果不好,反观Mongodb这种Nosql系统中,可以将一个用户的对应的所有商品信息嵌套存入该用户对应的文档的字段里面去,也就是说这些信息都存在一个文档中,局部性很好,这样的虽然磁盘冗余了大量的数据,但却大大加快了查询的速度,从当前计算机的发展来看,空间换时间是很正常的,而计算机最关键的技术高速缓存cache技术就是用空间换时间的典范。
原文链接
- mongodb系列01--基础篇
- mongodb基础系列——mongodb简介
- mongodb基础系列——mongodb服务器与客户端安装
- mongodb基础系列——java操作mongodb实现CURD
- mongodb基础系列——mongodb服务器无法启动
- mongodb基础系列——java操作mongodb实现CURD
- MongoDB基础教程系列--第六篇 MongoDB 索引
- MongoDB基础篇
- MongoDB基础篇:MongoDB Shell命令大全
- mongodb系列之选型篇
- mongodb系列之操作篇
- mongodb系列
- Mongodb 系列
- Mongodb 系列
- Mongodb系列:初识Mongodb
- mongodb基础系列—主从复制具体搭建以及解说
- mongodb基础系列—副本集具体搭建以及解说
- windows下mongodb基础玩法系列二CURD附加一
- C# 高级编程 泛型
- java几种常用设计模式简单示例
- 项目的搭建过程(简略)
- android与h5的互相交互传参
- nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
- mongodb系列01--基础篇
- 文章标题
- 使用SpringMVC MultipartFile 上传图片到tomcat,当文件较小时10K以下,上传不成功,后台报错空指针异常
- 关于ThinkPHP3.2中连贯操作where的说明
- Unity 发布到Android的注意事项开发环境
- 快速启动栏消失的解决方案
- 学习Maven之Maven Surefire Plugin(JUnit篇)
- Retrofit网络请求参数注解,@Path、@Query、@QueryMap的使用
- 垂直滚动跑马灯AutoScrollTextView