⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

1.5.3 数据仓库怎么选——数据库选择:PostgreSQL vs MySQL vs SQLite

一句话破题

数据库是应用的"记忆"——选对数据库,决定了数据存储的可靠性、查询的效率、以及未来的扩展能力。

三大数据库对比

特性PostgreSQLMySQLSQLite
类型关系型数据库关系型数据库嵌入式数据库
部署需要服务器需要服务器文件即数据库
并发优秀良好受限
功能最丰富够用基础
学习成本中等最低
适用场景生产环境生产环境开发/小型应用

推荐选择

本课程推荐

  • 开发环境:SQLite(零配置,方便本地开发)
  • 生产环境:PostgreSQL(功能强大,与 Prisma 配合最佳)

PostgreSQL 优势

  1. JSON 支持:原生支持 JSON/JSONB 类型,适合存储灵活结构的数据
  2. 丰富的数据类型:数组、范围类型、全文搜索等
  3. 强大的扩展:PostGIS(地理信息)、TimescaleDB(时序数据)
  4. 行级安全:内置 RLS(Row Level Security),适合多租户应用
  5. 与 Prisma 配合:Prisma 对 PostgreSQL 的支持最完善

快速上手 PostgreSQL

本地安装(开发环境)

方式 1:Docker(推荐)

bash
docker run --name postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres

方式 2:本地安装

云服务(生产环境)

服务商特点免费额度
SupabasePostgreSQL + Auth + Storage500MB 数据库
NeonServerless PostgreSQL0.5GB 存储
Railway一键部署$5 免费额度/月

Prisma 连接配置

.env 文件中配置数据库连接:

env
# SQLite(本地开发)
DATABASE_URL="file:./dev.db"

# PostgreSQL(生产环境)
DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public"

prisma/schema.prisma 中配置:

prisma
datasource db {
  provider = "postgresql"  // 或 "sqlite"
  url      = env("DATABASE_URL")
}

开发到生产的切换策略

  1. 本地开发:使用 SQLite,零配置启动
  2. 测试环境:使用 PostgreSQL Docker 容器
  3. 生产环境:使用云服务 PostgreSQL

Prisma 会帮你处理不同数据库之间的差异,只需要修改 DATABASE_URL 即可。

避坑指南

  • SQLite 限制:不支持并发写入,不适合生产环境
  • 连接字符串安全:数据库密码必须通过环境变量管理,不要硬编码
  • 本地 vs 云端:开发环境用本地数据库,避免网络延迟和费用
  • 备份策略:生产数据库必须配置自动备份