ustbwang 发表于 2018-10-24 13:03:37

MongoDB基础知识

  NoSQL是什么?
  非关系型数据库,有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称
  NoSQL的优势
  1、高扩展性
  2、高并发性,大数据下读写能力较强
  3、分布式计算
  4、处理海量数据
  5、没有复杂的关系
  NoSQL数据库四大家族
  列存储:Hbase
  键值(Key-Value)存储:Redis
  图像存储:Neo4J
  文档存储 :MongoDB
  MongoDB 将数据存储为一个文档,数据结构由键值(name=>value)对组成。MongoDB 文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。
  MongoDB和JSON、BSON
  JSON:是存储和交换文本信息的语法。类似 XML。JSON数据库语句可以容易被解析。
  BSON:二进制的JSON,JSON文档的二进制编码存储格式。BSON有JSON没有的数据类型:Date和BinData。MongoDB中document以BSON形式存放。
  MongoDB文档支持不同的数据类型
{  
name:"Jone Doe",
  
title:"software developer", #字符串
  
address:{
  
         street:"123 45th street"
  
   state:"new York"
  
   zipcode:10036
  

  
          },             #嵌套文档
  
   expertise:["MongoDB","Python","Javascript"], #数组
  
   employee_number:320,       #×××
  
   location:#Geo-spatial
  
}
  
}
  MongoDB的关键特性:
  1、高性能
  2、丰富的查询语言
  3、高可用性
  副本集,自动故障转移,数据冗余

  4、水平可扩展性
  5、支持多种存储引擎
  MMAPv1存储引擎:=3.2默认存储引擎是WiredTiger
  In-Memory存储引擎:Changed in version 3.2.6
  存储引擎的比较

  MongoDB的GridFS
  GridFS

  MongoDB与RDBMS数据结构逻辑对比

  MongoDB实际应用场景举例
  游戏场景
  使用MongoDB存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新。
  物流场景
  使用MongoDB存储订单信息,订单状态在运送过程中会不断更新,以MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
  社交场景
  使用MongoDB存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
  物联网场景
  使使用MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。
  视频直播
  使用MongoDB存储用户信息、礼物信息等
  MongoDB版本的选择,现在建议用3.4的版本
  MongoDB分企业版和社区版,社区版支持使用MongoDB ops manager

  是否使用MongoDB

  如果上述有1个 Yes,可以考虑 MongoDB,2个及以上的 Yes,选择 MongoDB 绝不会后悔!!!


页: [1]
查看完整版本: MongoDB基础知识