返回介绍

简介

发布于 2024-10-02 23:28:20 字数 2660 浏览 0 评论 0 收藏 0

MongoDB (来源于 humongous)是一款开源、可扩展、高性能、无模式的 文档导向数据库 ,用 C++ 编程语言编写。

2017 年 10 月 19 日在纳斯达克上市。

官网:

官网文档: https://docs.mongodb.com/manual/

下载:

查询工具 :RT、MongoChef

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较复杂的数据类型。

Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

Mongo 主要解决的是海量数据的访问效率问题,根据官方的文档,当数据量达到 50GB 以上的时候,Mongo 的数据库访问速度是 MySQL 的 10 倍以上。

Mongo 的并发读写效率不是特别出色,根据官方提供的性能测试表明,大约每秒可以处理 0.5 万-1.5 次读写请求

MongoDB 只支持对单行记录的原子性修改,并不支持对多行数据的原子操作。

表格 MongoDB 术语表

SQL 术语/概念MongoDB 术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins 表连接,MongoDB 不支持,但可用内嵌文档 BSON
primary keyprimary key主键,MongoDB 自动将_id 字段设置为主键

Mongodb 的优点与不足

1、Mongodb 的不足之处

  1. 在集群分片中的数据分布不均匀。
  2. 单机可靠性比较差。
  3. 大数据量持续插入,写入性能有较大波动。
  4. 磁盘空间占用比较大。

2、Mongodb 的过人之处

  1. 无模式。
  2. 查询与索引方式灵活,是最像 SQL 的 Nosql
  3. 支持复制集、主备、互为主备、自动分片等特性。

MongoDB ObjectId

MongoDB 的 _id (ObjectId) 是系统自动生成的 12 字节唯一标识。但在某些情况下,我们可能需要实现 ObjectId 自动增长功能。由于 MongoDB 没有实现这个功能,我们可以通过编程的方式来实现。

ObjectId 是一个 12 字节 BSON 类型数据,有以下格式:

4BYTES(时间戳) + 3BYTES(机器标识码) + 2BYTES(进程 id-PID) + 3BYTES(随机数)

BSON 格式

BSON 是由 10gen 开发的一个数据格式,目前主要用于 MongoDB 中,是 MongoDB 的数据存储格式。BSON 基于 JSON 格式,选择 JSON 进行改造的原因主要是 JSON 的通用性及 JSON 的 schemaless 的特性。

二进制的 JSON,JSON 文档的二进制编码存储格式

BSON 有 JSON 没有的 Date 和 BinData

MongoDB 中 document 以 BSON 形式存放

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文