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,大大减少了计算开销和数据大小。

相关推荐
CookieCrusher3 小时前
数据泄露危机逼近:五款电脑加密软件为企业筑起安全防线
运维·数据库·windows·安全·文件加密·数据防泄漏·dlp
这周也會开心5 小时前
SQL-窗口函数
数据库·sql
TDengine (老段)6 小时前
TDengine 时间函数 WEEKDAY() 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
TDengine (老段)7 小时前
从 ETL 到 Agentic AI:工业数据管理变革与 TDengine IDMP 的治理之道
数据库·数据仓库·人工智能·物联网·时序数据库·etl·tdengine
LQ深蹲不写BUG8 小时前
MySql的事务机制
数据库·mysql
逼子格9 小时前
【Proteus仿真】定时器控制系列仿真——秒表计数/数码管显示时间
数据库·单片机·嵌入式硬件·51单片机·proteus·定时器·硬件工程师
stein_java10 小时前
Mybatis-7 XML映射器
数据库·sql·mybatis
xhbh66611 小时前
开发效率翻倍:资深DBA都在用的MySQL客户端利器
数据库·mysql·数据库连接工具·mysql 连接工具
LJC_Superman11 小时前
Web与Nginx网站服务
运维·服务器·前端·网络·数据库·nginx·vim