# MongoDB 安装启动,Compass 图形界面,命令行交互

TIP

从本节开始正式学习 MongoDB 数据库相关概念、安装、使用 及 项目中的实践等

  • 关于数据库
  • MongoDB 的环境安装 与 启动
  • 使用 MongoDB Compass 图形界面
  • MongoDB 命令行交互
  • 数据库操作应用场景

# 一、关于数据库

TIP

  • 存储数据,要用专业的数据库软件
  • 数据库是一个独立的系统,与服务端语言无关
  • 数据库有很多,本次我们选择 MongoDB

# 1、专业的数据库软件

TIP

  • 数据库(DataBase)是按照数据结构来组织、存储和管理数据的 应用程序
  • 数据库是一个非常复杂的软件,而非随便几行代码就能搞定的
  • 提供高效的存储和查询操作(还有条件、排序等)
  • 能满足各个业务场景的复杂操作

# 2、数据库是一个独立的系统

TIP

  • 因为复杂,所以独立
  • 独立安装在操作系统上
  • 和 任何 web server 的语言、框架,都可连接

image-20240129185517478

注:

  • 定义前端请求的 url 规则 —— 路由
  • 用 Request 获取数据,用 Response 返回数据
  • 读取和存储数据 —— 数据库

从上图中可以看到,数据库是独立于 NodeJS 存在的,与任何业务逻辑 和 语言都没有关系,它们是相互独立的。

如果业务非常复杂,需要建很多 web server

image-20240302221528583

注:

  • 上图中,web server 1、web server 2、web server 3 都可连接两个数据库,它们之间是相互独立连接的
  • 对数据库来说,用一个 web server 连接后,还可以用第 2 个 web server 连接

我们大部分简单的项目都是一个 web server 连接 一个 数据库,或多个 web server 连接一个数据库。但我们在认知上要知道它是可以做到上图中的连接方式。

# 3、数据库管理数据的特点 与 作用

TIP

相对于纯文件管理数据,数据库管理数据有如下特点

  • 速度更快
  • 扩展性更强
  • 安全性更强

数据库的主要作用:管理数据,对数据进行 增、删、改、查

# 4、为什么选择 MongoDB

TIP

  • 常见的数据库有 MongoDB、MySQL、SQLserver、oracle
  • 分类:非关系型数据库(MongoDB ... ),关系型数据库(MySQL、SQLserver、oracle)
  • MongoDB 易学易用,适合初学者学习,关系型数据库学习成本会更高
  • 但并不代表 MongoDB 就简单,在实际项目开发中应用也非常的广泛,性能也非常好
  • 关系型数据库(如:MySQL)需要学习 SQL 语言,NoSQL 数据库则无需用 SQL 语句查询,易易学易用
  • MongoDB 的操作语法 与 JavaScript 类似,容易上手,学习成本低

# 5、MongoDB 是什么

TIP

MongoDB 是一个基于分布式文件存储的数据库

由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它是 NoSQL 数据库的一种,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富、最像关系数据库的。

MongoDB 的逻辑结构是一种层次结构,其支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。

MongoDB 最大的特点

它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。

总的来说,MongoDB 非常适合于存储对象形式的数据,如 JSON 或 BSON 格式的数据,以及需要高性能、可扩展性和灵活查询的应用场景。

官方网站:https://www.mongodb.com/ (opens new window)

# 6、MongoDB 的核心概念

TIP

  • 数据库(database):数据库是一个数据仓库,数据库服务下可以创建很多数据库,数据库中可以存放很多集合
  • 集合(collection):集合类似于 JS 中的数组,在集合中可以存放很多文档
  • 文档(document):文档是数据库中的最小单位,类似于 JS 中的对象

image-20240302222837453

以下是一个 JSON 文件

{
  "category": [
    { "id": 1, "name": "Web 前端" },
    { "id": 2, "name": "Java 架构" },
    { "id": 3, "name": "Python 实战" },
    { "id": 4, "name": "Node 后端" },
    { "id": 5, "name": "GO 语言" },
    { "id": 6, "name": "云原生" },
    { "id": 7, "name": "前端架构" }
  ],
  "users": [
    { "id": 1, "name": "ibc", "age": 18 },
    { "id": 2, "name": "allen", "age": 28 },
    { "id": 3, "name": "david", "age": 30 }
  ]
}

注:

可通过 JSON 文件来理解 MongoDB 中的概念

  • 一个 JSON 文件好比是一个 数据库 ,一个 MongoDB 服务下可以有 N 个 数据库
  • JSON 文件中的 一级属性的数组值 好比是 集合
  • 数组中的对象好比是 文档
  • 对象中的属性有时也称之为 字段

一般情况

  • 一个项目使用一个数据库
  • 一个集合会存储同一种类型的数据

# 二、安装 与 启动 MongoDB

image-20240223223337218

推荐选择 zip 类型,通用性更强

# 1、MongoDB 配置步骤

TIP

  • ①、将压缩包放到 C:\Program Files 下,然后解压缩
  • ②、创建 C:\data\db 目录,MongoDB 会将数据默认保存在这个文件夹内
  • ③、以 MongoDB 中的 bin 目录作为工作目录,启动命令行
  • ④、运行命令 mongod

image-20240223234834285

直接在命令行中运行 mongod ,实际上就是在运行 该目录中的 mongod.exe 文件(即:MongoDB 的服务端程序)

image-20240223235643325

看到运行日志中出现 Waiting for connections ,端口号为 27017,表明 MongoDB 服务已启动成功

image-20240223235457701

注:

为了方便后续在系统的任意目录中都可随时启动 MongoDB 数据库服务,推荐配置好环境变量

将 MongoDB 服务的 bin 目录 C:\Program Files\mongodb-win32-x86_64-windows-7.0.5\bin 配置在环境变量的 path 中

# 2、连接 MongoDB 服务端

注:

从 MongoDB 6.0 版本开始,MongoDB Shell (mongo.exe) 不再自动包含在 MongoDB 的二进制发行版中,需要用户单独下载和安装。

下载 MongoDB Shell 客户端,地址:https://www.mongodb.com/try/download/shell (opens new window)

image-20240224005414152

# 2.1、MongoDB Shell 客户端 - 配置步骤

TIP

  • 将压缩包放到 C:\Program Files 下,然后解压缩
  • 以 MongoDB Shell 的 bin 目录作为工作目录,启动命令行
  • 运行命令 mongosh 启动 MongoDB Shell 客户端 连接本机的 MongoDB 服务

image-20240224010910232

注:

为了方便后续在系统的任意目录中都可随时启动并连接 MongoDB 数据库服务,推荐配置好环境变量

将 MongoDB Shell 客户端的 bin 目录 C:\Program Files\mongosh-2.1.5-win32-x64\bin 配置在环境变量的 path 中

一定不要选中 MongoDB 服务端黑窗口的内容,选中后服务会停止,可以按 “回车” 取消选中,服务即恢复

# 2.2、日常启动连接 MongoDB 服务

TIP

日常本地启动连接 MongoDB 服务,只需要 cmd 任意目录打开黑窗口

  • cmd 打开黑窗口 ① ,输入 mongod 命令,启动 MongoDB 数据库服务(注:使用期间不能关闭此窗口)
  • cmd 打开黑窗口 ②,输入 mongosh 命令,启动 MongoDB Shell 客户端连接,即可直接使用 命令行的方式对 MongoDB 进行 增、删、查、改 的操作

平时若使用 命令行交互,需要打开两个黑窗口;若使用 图形界面操作,只需要打开并 保持黑窗口 ① 一直打开即可

# 三、使用 Compass 图形界面

TIP

Compass 是一种用于查询、优化和分析 MongoDB 数据的免费交互式工具。获取关键见解,拖放以构建管道等。

# 1、下载安装 Compass

image-20240227112714427

直接下一步安装即可,安装成功后,会打开 Compass 的 GUI 界面

image-20240227120442766

启动 MongoDB 服务,并使用 MongoDB Compass 客户端连接 MongoDB 数据库服务端

  • cmd 打开黑窗口 ,输入 mongod 命令,启动 MongoDB 数据库服务(注:使用期间不能关闭此窗口)
  • 点击 Compass 客户端 GUI 界面中的 “Connect” 按钮,连接 MongoDB 数据库服务端

image-20240227120954999

# 2、使用 Compass 创建数据库

TIP

  • 创建一个数据库(database)
  • 创建集合(collection)
  • 文档(document)的增删查改

# 2.1、数据分层管理

TIP

根据前面分析过的评论系统项目的数据库为例,观察 MongoDB 数据的分层管理

image-20240302231805403

注:

  • 最外层:安装好的 MongoDB 数据库(数据库是一个独立的系统、与业务 和 web server 无关,目的就是用来存储 和 管理数据)
  • 数据库中可以存储多个项目的数据,不同项目数据之间会分开管理(即:数据分层管理)
  • 如:评论系统项目:用户数据、留言数据 ...... ,其他项目
  • 项目数据层级:每个项目的数据也是单独管理,如:评论系统项目(分别存储不同类型的数据,用户数据、留言数据 ..... 等)

# 2.2、创建数据库

TIP

在 MongoDB 中,adminconfiglocal 是默认的数据库,它们在 MongoDB 安装后自动创建(一般情况,不要去动它们)。每个数据库都有其特定的用途:

admin 数据库

  • 这是一个特殊的数据库,用于存储系统级的信息,如用户、角色和权限等。
  • 当启用 MongoDB 的认证功能时,需要在 admin 数据库中创建用户,以便进行身份验证和授权。
  • 一些特定的服务器命令,如列出所有数据库或关闭服务器,只能从 admin 数据库运行。

config 数据库

  • 当 MongoDB 用于分片设置时,config 数据库用于存储分片集群的基础信息。
  • 分片是 MongoDB 中将数据分布到多个服务器上的过程,而 config 数据库则存储了与分片相关的配置信息。

local 数据库

  • local 数据库主要用于存储与副本集相关的元数据。
  • 副本集是 MongoDB 中用于实现数据冗余和高可用性的机制,而 local 数据库则存储了与副本集配置和操作相关的信息。
  • 值得注意的是,local 数据库中的数据不会被复制到副本集中的其他节点上,因为它是特定于每个 MongoDB 实例的。

在 MongoDB 中,可以创建多个自定义数据库来存储应用程序的数据,但这些自定义数据库与 adminconfiglocal 这样的系统数据库是分开的,并且具有不同的用途和特性。

在 Compass 中,点击 “+” 创建项目的数据库 comment-system

image-20240227170643651

  • 创建数据库:输入数据库名称 comment-system
  • 创建集合:输入集合名称 users
  • 点击 Create Database 按钮完成创建

image-20240227201317238

注:

按照数据分层管理,comment-ststem 为第二层(评论系统数据库);users 为第三层(评论系统数据集合)

# 2.3、创建集合

TIP

comment-ststem 数据库中再次创建 留言信息集合 comments

image-20240227203054703

输入集合名称,创建新的集合

image-20240227203220562

创建完成后,即可看到左侧列表中的集合列表(commentsusers 集合)

image-20240227203408321

# 3、新增文档

TIP

在 Compass 中,新增 users 文档(document)数据,点击 insert document

image-20240227211053129

在输入框中输入文档数据(JSON 类型),点击 insert 按钮

image-20240227212309036

文档数据

{
  "username": "icoding",
  "password": "123",
  "age": 18,
  "city": "beijing"
}

插入文档数据完成,可查看

image-20240227212749547

注:

我们并没有手写 _id 这个字段,系统会自动生成一个随机且不重复的字符串(id)。_id字段具有以下主要特性:

  • 唯一性:每个文档的_id值必须是唯一的,这是 MongoDB 保证数据唯一性的基础。在集合中,每个文档都有一个唯一的_id值,以确保集合中的每个文档都能被唯一标识。

  • 自动索引_id字段会自动被索引,这有助于快速查询和检索文档。

  • 自动生成:当插入一个新的文档时,如果_id字段为空,MongoDB 会自动为其生成一个唯一的_id值。这个值是一个 12 位的 BSON 类型,其中包括一个时间戳和一个自增序列号。这个 BSON 类型被称为ObjectId,是 MongoDB 的 BSON 类型之一。

  • 不可更改性_id类型的值一旦生成,就无法更改。如果需要更改_id值,需要先删除原有文档,再插入一个新的文档。

  • 组成与含义ObjectId由以下部分组成:

    • 一个 4 字节的值,表示自 Unix 时代以来的秒数;
    • 一个 3 字节的机器标识符,用于确保不同主机生成的ObjectId是唯一的;
    • 一个 2 字节的进程 ID,用于确保同一机器上并发的多个进程产生的ObjectId是唯一的;
    • 一个 3 字节的计数器,以随机值开头,用于确保同一机器上同一进程同一秒产生的ObjectId 是唯一的;

再次插入文档数据

{
  "username": "allen",
  "password": "123",
  "age": 20,
  "city": "shanghai"
}

成功创建了 2 个用户文档数据

image-20240228004100124

# 4、删除一条数据(文档)

TIP

鼠标滑到其中的一个文档上,即会显示删除按钮,直接点击删除即可。(删除集合 与 数据库类似,谨慎操作 !)

image-20240228111006375

# 5、更新数据

点击需要修改的数据,修改完成后 -> 点击 UPDATE 按钮

image-20240228205300926

# 6、查询数据

根据条件查询数据,在 Compass 的文本框中输入查询条件,点击 Find 按钮

// 单查询条件
{city: 'beijing'}

// 多条件查询
{city: 'beijing', username: 'icoding'}

image-20240228220738566

# 7、排序

从小到大排序,如:根据 age 从小到大排序

注:{age: 1} 按从小到大排序

image-20240228225719375

从大到小排序,如:根据 age 从大到小排序

注:{age: -1} 按 age 从大到小排序

image-20240228230115806

# 四、MongoDB 命令行交互

TIP

命令行交互一般是学习数据库的第一步,不过这些命令在实际开发中会用的比较少,了解即可

# 1、MongoDB Shell 客户端

TIP

使用 cmd 黑窗口,通过 MongoDB Shell 客户端连接 MongoDB 服务端

在黑窗口中输入 mongosh 命令,启动 MongoDB Shell 客户端 连接 MongoDB 服务端,即可直接使用 命令行的方式对 MongoDB 进行 增、删、查、改 的操作

image-20240229102454500

# 2、Compass 命令行客户端

TIP

使用 MongoDB Compass GUI 图形界面中的 命令行客户端,直接输入命令即可对数据库进行相关操作(推荐使用)

image-20240229102950733

注:

在使用任何客户端连接 MongoDB 数据库服务时,都要保证 MongoDB 数据库服务端是开启状态。(本地数据库服务启动的黑窗口不能关闭)

# 3、数据库命令

显示所有的数据库

show dbs

切换到指定的数据库,如果数据库不存在会自动创建数据库

# 语法
use 数据库名

# 如果数据库不存在会自动创建数据库
use icoding

# 再次显示所有的数据库(此时,不会显示新创建的数据库 icoding,原因是:该数据库内还没有集合)
show dbs

# 在 icoding 数据库中创建一个集合
db.createCollection('users')

# 再次显示所有数据库(此时,即可显示刚刚创建的 icoding 数据库了)
show dbs

image-20240229115117135

显示当前所在的数据库

db

删除当前数据库

# 语法
use 库名

# 删除当前数据库
db.dropDatabase()

# 4、集合命令

创建集合

db.createCollection('集合名称')

先创建一个数据库,在创建一个集合

# 如果数据库不存在会自动创建数据库
use icoding

# 创建集合
db.createCollection('users')
db.createCollection('product')

显示当前数据库中的所有集合

show collections

删除某个集合

# 语法
db.集合名.drop()

# 删除商品集合
db.product.drop()

重命名集合

// 语法
db.集合名.renameCollection("newName");

// 重命名用户集合
db.user.renameCollection("user");

# 5、文档命令

插入单个文档

使用insertOne方法插入单个文档

// 语法
db.集合名.insertOne(文档对象);

// 插入一条用户文档数据
db.user.insertOne({ username: "allen", age: 18 });

插入多个文档

使用insertMany方法插入多个文档

// 语法
db.collection.insertMany(arrayOfDocuments);

// 插入多个用户文档
db.user.insertMany([
  { username: "ibc", age: 30 },
  { username: "david", age: 35 },
]);

使用简写的insert方法

它会根据传入的参数类型自动选择insertOneinsertMany

// 语法
db.collection.insert(documentOrArrayOfDocuments);

// 插入单个文档
db.user.insert({ username: "David", age: 40 });

// 插入多个文档
db.user.insert([
  { username: "Eve", age: 28 },
  { username: "Frank", age: 50 },
]);

注:

当你执行这些命令时,MongoDB 会在指定的集合中插入数据。如果集合不存在,MongoDB 会自动创建它。

请注意,从 MongoDB 4.2 版本开始,insert方法已被弃用,并推荐使用insertOneinsertMany方法

# 6、查询文档

TIP

在 MongoDB 中,查询文档主要使用findfindOne命令。以下是这些命令的简要说明和示例:

# 6.1、find 命令

TIP

find命令用于查询集合中的文档,并返回结果为游标的文档集合

// 语法
db.collection.find(query, projection);

注:

  • query:一个可选的查询对象,用于筛选文档。如果省略,将返回集合中的所有文档。
  • projection:一个可选的投影对象,用于指定返回的字段。如果省略,将返回匹配文档的所有字段。
// 查询集合中所有文档
db.user.find();

// 查询年龄为 18 的用户
db.user.find({ age: 18 });

// 查询年龄大于 18 的用户,并只返回 _id 和 username 字段
db.user.find({ age: { $gt: 18 } }, { _id: 1, username: 1 });

# 6.2、findOne 命令

TIP

findOne命令用于查询集合中的第一个匹配文档

// 语法
db.collection.findOne(query, projection);
  • query:一个可选的查询对象,用于筛选文档。
  • projection:一个可选的投影对象,用于指定返回的字段。
// 查询年龄为 18 的第一个用户
db.user.findOne({ age: 18 });

// 查询第一个用户,并只返回 _id 和 username 字段
db.user.findOne({}, { _id: 1, username: 1 });

# 6.3、条件操作符

TIP

MongoDB 提供了丰富的条件操作符来构建查询,例如:

操作符 描述
$eq 等于
$gt 大于
$gte 大于等于
$lt 小于
$lte 小于等于
$ne 不等于
$in 在指定数组中
$nin 不在指定数组中
$exists 字段是否存在
...... ......

# 6.4、查询选项

TIP

你还可以使用查询选项来修改查询的行为,例如:

  • sort():对结果进行排序。
  • limit():限制返回的文档数量。
  • skip():跳过指定数量的文档。
// 查询年龄大于15的用户,按年龄降序排序,取前5个
db.user
  .find({ age: { $gt: 15 } })
  .sort({ age: -1 })
  .limit(5);

// 查询年龄大于15的用户,跳过前10个,然后取5个
db.user
  .find({ age: { $gt: 15 } })
  .skip(10)
  .limit(5);

可以根据具体需求组合使用它们来执行复杂的查询操作。

# 6.5、分页查询

TIP

在 MongoDB 中,要实现分页查询,通常会使用find方法结合skiplimit方法。skip方法用于跳过指定数量的文档,而limit方法用于限制返回的文档数量。

需求:如果你有一个users集合,并且你想要按照createdAt字段降序排序,查询第 2 页的数据,每页显示 10 个文档

db.user.find().sort({ createdAt: -1 }).skip(10).limit(10);

这条命令会跳过前 10 个文档(即第 1 页的数据),然后返回接下来的 10 个文档(即第 2 页的数据)

分页查询的示例

// 假设每页显示10个文档,我们要查询第2页的数据
const pageSize = 10; // 每页文档数量
const pageNumber = 2; // 当前页码

// 计算需要跳过的文档数量
const skipCount = (pageNumber - 1) * pageSize;

// 执行分页查询
db.collection.find(query).sort(sortCriteria).skip(skipCount).limit(pageSize);

注:

  • query用于筛选文档的查询条件
  • sortCriteria 是想要按照哪个字段进行排序的条件(例如,{ createdAt: -1 } 表示按照createdAt 字段降序排序)

# 7、更新文档

TIP

在 MongoDB 中,更新文档通常使用updateOneupdateManyreplaceOnefindOneAndUpdate命令

# 7.1、updateOne 命令

updateOne命令用于更新集合中匹配到的第一个文档。

// 更新第一个用户名为 “allen” 的,将 年龄 改为 20
db.user.updateOne({ username: "allen" }, { $set: { age: 20 } });

# 7.2、updateMany 命令

updateMany命令用于更新集合中所有匹配到的文档。

// 更新所有年龄为 20 的用户的名字为 "John"
db.user.updateMany({ age: 20 }, { $set: { username: "ibc" } });

# 7.3、replaceOne 命令

replaceOne命令用于替换集合中匹配到的第一个文档。

// 替换第一个年龄为 20 的用户的信息
db.user.replaceOne(
  { age: 20 },
  { age: 25, username: "allen", address: "北京市海淀区" }
);

# 7.4、findOneAndUpdate 命令

findOneAndUpdate命令用于查找并更新集合中匹配到的第一个文档,并返回更新前的文档。

// 找到年龄为 20 的第一个用户,增加其年龄 1 ,并返回更新前的文档
db.user.findOneAndUpdate(
  { age: 20 },
  { $inc: { age: 1 } },
  { returnDocument: "before" }
);

# 8、删除文档

TIP

在 MongoDB 中,删除文档主要使用removedeleteOnedeleteMany方法

# 8.1、remove 命令

TIP

remove方法用于从集合中删除文档。在 MongoDB 3.2 及更高版本中,remove方法已被弃用,取而代之的是deleteOnedeleteMany方法。

但如果你使用的是较旧的 MongoDB 版本,仍然可以使用remove方法。

// 删除年龄为25的第一个用户(仅适用于旧版本的 MongoDB)
// justOne:如果为true或1,则只删除一个匹配的文档
db.user.remove({ age: 25 }, { justOne: true });

// 删除所有年龄为25的用户(仅适用于旧版本的 MongoDB)
db.user.remove({ age: 25 });

# 8.2、deleteOne 命令

deleteOne方法用于删除与指定查询条件匹配的第一个文档

// 删除年龄为25的第一个用户
db.user.deleteOne({ age: 25 });

# 8.3、deleteMany 命令

deleteMany方法用于删除与指定查询条件匹配的所有文档

// 删除所有年龄为25的用户
db.user.deleteMany({ age: 25 });

注:

在使用以上删除方法时,要确保已经连接到了 MongoDB 数据库,并且您有足够的权限来执行删除操作。

同时,也要谨慎处理删除操作,以避免意外地删除重要数据。在执行删除操作之前,通常建议首先使用find命令来确认将要被删除的文档。

# 五、数据库操作应用场景

TIP

数据库的应用场景主要根据使用的数据库类型而异。以下是一些常见的数据库类型及其应用场景。

每种数据库都有其特定的优势和使用场景,选择哪种数据库取决于应用的需求、数据的性质以及性能、可扩展性和维护性的要求。

# 1、关系型数据库(RDBMS)

TIP

  • 企业应用:如 ERP(企业资源规划)、CRM(客户关系管理)系统,它们需要处理大量的结构化数据,并确保数据的一致性和完整性。
  • 电子商务:在线商店需要关系型数据库来管理商品、订单、用户信息等。
  • 金融系统:银行、保险和投资公司等需要关系型数据库来处理复杂的金融交易和报告。

常见的关系型数据库包括 MySQL、Oracle、Microsoft SQL Server、PostgreSQL 等。

# 2、非关系型数据库(NoSQL)

TIP

  • 大数据处理:如 Hadoop 和 Cassandra,它们用于处理和分析大规模的非结构化数据。
  • 实时应用:如消息队列(如 Kafka)和键值存储(如 Redis),它们提供快速的读写能力和实时响应。
  • 社交网络:需要处理大量的用户生成内容和高并发请求,如 Facebook 和 Twitter 使用 NoSQL 数据库。

常见的非关系型数据库包括 MongoDB、Cassandra、Redis、Couchbase 等。

# 3、图数据库

TIP

  • 社交网络分析:图数据库如 Neo4j 特别适合表示和分析复杂的关系数据,如社交网络中的用户、朋友和兴趣。
  • 推荐系统:基于图的算法可以用于构建推荐系统,如电影、音乐或商品的推荐。

# 4、列式数据库

TIP

  • 大数据分析:如 Apache HBase 和 Google 的 Bigtable,它们特别适合于存储和分析大量的结构化数据,尤其是那些具有许多列的数据。
  • 实时分析:列式数据库支持高效的聚合操作,使得它们适合进行实时数据分析。

# 5、内存数据库

TIP

  • 高性能应用:如 Redis 和 Memcached,它们将所有数据存储在内存中,从而提供极快的读写性能。
  • 缓存:内存数据库常用于作为后端存储的缓存层,加速数据访问。

# 6、时序数据库

TIP

  • 物联网(IoT):时序数据库如 InfluxDB 和 TimescaleDB 特别适合于处理时间序列数据,如传感器读数、设备日志等。
  • 金融交易:它们也常用于记录和分析金融市场的交易数据。

# 7、增删查改的常见应用场景

新增

提交表单信息:用户注册,发布商品、视频、评论、微博、弹幕、朋友圈 ......

删除

删除操作:删除用户信息、商品、视频、文章、评论、微博、弹幕、朋友圈 ......

更新

修改操作:修改用户信息、商品信息、文章内容 ......

查询

查询操作:文章列表、商品列表、微博列表 ......

上次更新时间: 3/17/2024, 7:06:32 PM

大厂最新技术学习分享群

大厂最新技术学习分享群

微信扫一扫进群,获取资料

X