Skip to content

序言

数据库:后端应用的核心基石

几乎所有有意义的后端应用都需要与数据库交互。用户信息、业务数据、配置信息——这些数据需要被可靠地存储、高效地查询、安全地管理。

作为 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 使用最新稳定版本

数据是应用的灵魂

代码可以重写,架构可以重构,但数据是不可替代的资产。学会正确地存储、查询、保护数据,是后端开发者最重要的技能之一。

让我们开始掌握数据库这一核心能力。

序言 has loaded