5.4 KiB
5.4 KiB
基础概念
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
性能调优
- 查询优化
- 索引优化
- 硬件优化
- 配置优化
故障诊断
- 慢查询分析
- 锁竞争分析
- 内存泄漏排查
实践环节
- 性能基准测试
- 瓶颈分析
- 调优实施