Appearance
序言
数据库:后端应用的核心基石
几乎所有有意义的后端应用都需要与数据库交互。用户信息、业务数据、配置信息——这些数据需要被可靠地存储、高效地查询、安全地管理。
作为 Node.js 开发者,你需要掌握如何与各种数据库协作:关系型数据库如 PostgreSQL 和 MySQL,文档数据库如 MongoDB,键值存储如 Redis。更重要的是,你需要理解 ORM 的设计原理,能够在原生查询和抽象层之间做出正确的选择。
这本书将带你全面掌握 Node.js 的数据库操作能力。
为什么数据库知识如此关键
1. 性能的根源往往在数据库
当你的应用出现性能问题时,数据库查询往往是主要瓶颈:
- 一个 N+1 查询可能让响应时间增加 10 倍
- 缺少索引可能让查询从毫秒变成秒级
- 不当的连接池配置可能导致连接耗尽
理解数据库原理,是性能优化的基础。
2. 数据一致性是业务的保障
在处理订单、支付、库存等关键业务时,数据一致性至关重要:
- 事务如何保证 ACID?
- 分布式场景下如何处理?
- 乐观锁和悲观锁何时使用?
这些问题直接关系到业务的正确性。
3. 选型决定架构
不同的数据库适合不同的场景:
- PostgreSQL 的强一致性和丰富功能
- MongoDB 的灵活 Schema 和水平扩展
- Redis 的极致性能和数据结构
理解各种数据库的特点,才能做出正确的技术选型。
本书的核心内容
关系型数据库
从 PostgreSQL 和 MySQL 开始,深入讲解 SQL 查询、事务处理、索引优化、连接池管理等核心知识。
MongoDB
作为最流行的文档数据库,MongoDB 有其独特的设计理念。我们将深入讲解文档模型、聚合管道、索引策略等。
Redis
不仅仅是缓存,Redis 的丰富数据结构可以解决很多问题。我们将探讨 Redis 在 Node.js 中的各种应用场景。
ORM 与查询构建器
Prisma、TypeORM、Sequelize、Mongoose——不同的 ORM 有不同的设计理念。我们将深入分析它们的优缺点和适用场景。
高级主题
连接池原理、事务管理、迁移策略、读写分离、分库分表——这些是构建大规模应用必须掌握的知识。
本书结构
第一部分:数据库基础——关系型与非关系型,SQL 与 NoSQL 第二部分:PostgreSQL 实战——Node.js 连接与操作 第三部分:MySQL 实战——特性差异与最佳实践 第四部分:MongoDB 实战——文档模型与操作 第五部分:Redis 实战——缓存与数据结构应用 第六部分:ORM 深度对比——Prisma、TypeORM、Sequelize 第七部分:Mongoose ODM——MongoDB 的 Node.js 解决方案 第八部分:高级主题——事务、迁移、优化、扩展
目标读者
本书适合:
- 希望系统学习数据库操作的 Node.js 开发者
- 需要做数据库选型的技术负责人
- 想要深入理解 ORM 原理的工程师
- 正在进行性能优化的开发团队
本书假设你已经有基本的 SQL 知识和 Node.js 开发经验。
技术约定
- 基于 Node.js v20 LTS
- 关系型数据库使用 PostgreSQL 15 和 MySQL 8
- 文档数据库使用 MongoDB 7
- Redis 使用 Redis 7
- ORM 使用最新稳定版本
数据是应用的灵魂
代码可以重写,架构可以重构,但数据是不可替代的资产。学会正确地存储、查询、保护数据,是后端开发者最重要的技能之一。
让我们开始掌握数据库这一核心能力。