当前位置: 首页 > news >正文

mongodb总概

一、mongodb概述

mongodb是最流行的nosql数据库,由C++语言编写。其功能非常丰富,包括:

  • 面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;
  • 格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;
  • 强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力:
  • 完整的索引支持,支持查询计划;
  • 支持复制和自动故障转移;
  • 支持二进制数据及大型对象(文件)的高效存储;
  • 使用分片集群提升系统扩展性;
  • 使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作:

mongodb中几个概念 :
实例: 一个mongodb的服务进程就是一个实例。
库: 一个库里有多个集合。
集合: 表的概念,表里可以存多条文档。
文档: 就是数据的概念,mongodb中数据统称为文档。

关系如下图所示:
在这里插入图片描述

二、 mongodb的特点

  1. mongodb对Bson(json)格式的数据处理很友好。我们可以不遍历json格式中的key,而是直接获取json中key所对应的值。
  2. mongodb读写的QPS比mysql等关系型数据库快很多。
  3. 数据存储占用空间小
  4. 对事物支持不友好,对联表查询支持不友好。

综上所述,当我们可以存储json格式的数据时,且无需考虑事务,无需联表查询时,可以考虑使用mongodb来代替关系型数据库,使应用轻量级。

三、 索引,执行计划,慢sql

数据库三板斧:索引、执行计划和开启慢sql。mongodb都支持。这里不再过多展开概述。当然,mongodb也支持集群模式和数据分片机制。

四、 Bson数据格式

mongodb采用的是Bson数据格式进行存储。BSON 全称“Binary Serialized Document Format”,译为“二进制序列化文档格式”。
Bson数据格式并非只能在mongodb中使用。我们在自己的应用中,也可以执行Bson来定义数据结构。使用时需要引入Bson类库的包,然后定义Bson类型的数据进行操作即可。因为Bson占用的空间更小,查询性能更高,所以可以考虑使用Bson定义数据结构。

bson与json的比较如下:

在这里插入图片描述
几个注意点是:

数据结构:json是像字符串一样存储的,bson是按结构存储的(像数组 或者说struct)

存储空间: bson>json

操作速度: bson>json。比如,遍历查找:json需要扫字符串,而bson可以直接定位

修改:json也要大动大移,bson就不需要。

bson增加了“byte array”数据类型。这使得二进制的存储不再需要先base64转换后再存成json,大大减少了计算开销和数据大小。

http://www.lryc.cn/news/368119.html

相关文章:

  • 【设计模式】策略模式(行为型)⭐⭐
  • 《软件定义安全》之三:用软件定义的理念做安全
  • pdf文件在线压缩网站,pdf文件在线压缩工具软件
  • java程序100道21-30
  • 英伟达SSD视觉算法模型训练、转换与部署
  • 智能变电站网络报文记录及故障录波分析装置
  • npm ERR! code E404 npm ERR! 404 Not Found - GET https://registry.npmjs.org/
  • Dockerfille解析
  • 定个小目标之刷LeetCode热题(14)
  • 智慧管道管理:油气管道可视化的领先应用
  • 嵌入式仪器模块:示波器模块和自动化测试软件
  • 组装服务器重装linux系统【idrac集成戴尔远程控制卡】
  • 景区ar互动大屏游戏化体验提升营销力度
  • 苍穹外卖笔记-07-菜品管理-增加、删除、修改、查询分页还有菜品起售或停售状态
  • oracle dataguard 从库 MRP 进程的状态是 WAIT_FOR_GAP
  • 【C语言】轻松拿捏-联合体
  • 基于Python定向爬虫技术对微博数据可视化设计与实现
  • 【QT5】<总览三> QT常用控件
  • Python中的生成器表达式(generator expression)
  • Responder工具
  • gitblit 环境搭建,服务器迁移记录
  • 硬盘坏了数据能恢复吗 硬盘数据恢复一般多少钱
  • 312. 戳气球 Hard
  • 推荐4个好用有趣的软件
  • GPT-4.0来袭:人工智能新纪元即将开启
  • Luminar Neo - AI智能修图软件超越PS和LR,简单易用又高效!
  • 【Linux】rsync远程数据同步工具使用
  • 以sqlilabs靶场为例,讲解SQL注入攻击原理【42-53关】
  • 单片机数码管时钟电路的设计
  • win10文件夹.git或者文件被隐藏的开启姿势