Files
Cloud-book/数据库/MongoDB_2025/mongodb_tpl.md
2025-08-27 17:10:05 +08:00

373 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 基础概念
## NoSQL 数据库概述
- 关系型数据库 vs NoSQL 数据库
- NoSQL 数据库分类(文档型、键值型、列族型、图形型)
- MongoDB 在 NoSQL 生态中的定位
## 核心概念
- 文档Document与 BSON 格式
- 集合Collection概念
- 数据库Database结构
- MongoDB 与关系型数据库术语对比
## 架构原理
- MongoDB 存储引擎WiredTiger
- 内存映射文件系统
- 索引机制
- 查询优化器
## 文档学习
---
# 环境搭建
## 安装部署
- Linux 环境安装RockyLinux9
## 相关配置
- 配置文件详解
- 数据目录设置
- 日志配置
- 网络绑定设置
## 服务管理
- systemctl 服务管理
- 开机自启动配置
- 服务状态监控
## 实践环节
- 生产环境配置文件模板
---
# 基础操作
## MongoDB Shell 使用
- mongo shell 连接
- 基本命令操作
- 脚本执行
## 数据库操作
- 创建和删除数据库
- 数据库列表查看
- 数据库切换
## 集合操作
- 创建和删除集合
- 集合属性设置
- 集合统计信息
## 文档 CRUD 操作
- 插入文档insert、insertOne、insertMany
- 查询文档find、findOne
- 更新文档update、updateOne、updateMany
- 删除文档remove、deleteOne、deleteMany
## 实践环节
- 基础 CRUD 操作练习
- 批量数据导入导出
- 数据迁移实验
---
# 进阶查询
## 查询操作符
- 比较操作符($eq、$ne、$gt、$gte、$lt、$lte
- 逻辑操作符($and、$or、$not、$nor
- 元素操作符($exists、$type
- 数组操作符($in、$nin、$all、$size
## 查询修饰符
- 排序sort
- 限制limit
- 跳过skip
- 投影projection
## 正则表达式查询
- 正则表达式语法
- 模糊查询实现
- 性能考虑
## 聚合框架基础
- 聚合管道概念
- 常用聚合操作符
- 分组和统计
## 实践环节
- 复杂查询练习
- 聚合查询实例
- 查询性能测试
---
# 索引优化
## 索引基础
- 索引原理和作用
- B-Tree 索引结构
- 索引的优缺点
## 索引类型
- 单字段索引
- 复合索引
- 多键索引
- 文本索引
- 地理空间索引
- 哈希索引
## 索引管理
- 创建索引createIndex
- 删除索引dropIndex
- 查看索引getIndexes
- 重建索引reIndex
## 查询性能优化
- 执行计划分析explain
- 索引选择策略
- 查询优化技巧
## 实践环节
- 索引创建和管理
- 性能测试对比
- 查询优化案例
---
# 数据建模
## 文档设计原则
- 嵌入式文档 vs 引用
- 数据冗余策略
- 原子性考虑
## Schema 设计模式
- 一对一关系建模
- 一对多关系建模
- 多对多关系建模
- 树形结构建模
## 数据验证
- Schema 验证规则
- 数据类型约束
- 自定义验证器
## 实践环节
- 电商系统数据建模
- 社交网络数据建模
- 内容管理系统建模
---
# 聚合框架
## 聚合管道详解
- $match 阶段
- $group 阶段
- $sort 阶段
- $project 阶段
- $limit 和 $skip 阶段
## 高级聚合操作
- $lookup关联查询
- $unwind数组展开
- $facet多维聚合
- $bucket分桶聚合
## 聚合表达式
- 算术表达式
- 字符串表达式
- 日期表达式
- 条件表达式
## MapReduce
- MapReduce 概念
- 编写 Map 和 Reduce 函数
- 性能对比
## 实践环节
- 数据分析报表
- 实时统计系统
- 复杂业务逻辑实现
---
# 副本集Replica Set
## 副本集概念
- 高可用性需求
- 副本集架构
- 主从复制原理
## 副本集架构
- Primary 节点
- Secondary 节点
- Arbiter 节点
- 选举机制
## 副本集部署
- 单机多实例部署
- 多机部署
- 配置文件设置
- 初始化副本集
## 副本集管理
- 添加和删除节点
- 优先级设置
- 故障转移测试
- 数据同步监控
## 实践环节
- 副本集搭建
- 故障模拟和恢复
- 性能测试
---
# 分片Sharding
## 分片概念
- 水平扩展需求
- 分片架构组件
- 分片键选择
## 分片架构
- Config Server
- Shard Server
- mongos 路由
- 数据分布策略
## 分片部署
- 分片集群搭建
- 配置服务器部署
- 路由服务器配置
- 分片初始化
## 分片管理
- 分片键管理
- 数据均衡
- 分片添加和删除
- 性能监控
## 实践环节
- 分片集群搭建
- 数据分片测试
- 扩容演练
---
# 安全管理
## 认证机制
- 用户认证
- 角色权限管理
- LDAP 集成
## 授权控制
- 基于角色的访问控制RBAC
- 数据库级权限
- 集合级权限
## 审计日志
- 审计功能配置
- 日志分析
- 合规性要求
## 实践环节
- 安全配置实施
- 权限测试
- 安全审计
---
# 备份与恢复
## 备份策略
- 全量备份
- 增量备份
- 实时备份
## 备份工具
- mongodump/mongorestore
- 文件系统快照
- 第三方备份工具
## 恢复策略
- 完全恢复
- 时间点恢复
- 选择性恢复
## 备份自动化
- 备份脚本编写
- 定时任务配置
- 备份验证
## 实践环节
- 备份恢复演练
- 自动化脚本开发
- 灾难恢复测试
---
# 性能监控与调优
## 性能监控
- mongostat 工具
- mongotop 工具
- 第三方监控工具
## 性能指标
- 连接数监控
- 操作延迟
- 内存使用
- 磁盘 I/O
## 性能调优
- 查询优化
- 索引优化
- 硬件优化
- 配置优化
## 故障诊断
- 慢查询分析
- 锁竞争分析
- 内存泄漏排查
## 实践环节
- 性能基准测试
- 瓶颈分析
- 调优实施
---