Skip to content
返回部署

部署 SQLite

嵌入式 SQL 数据库,零配置、文件式,litestream 复制。

平台入门

为什么

SQLite 单文件数据库无服务器进程 — 零配置、ACID、10万+ 读/秒。Litestream 加 S3 复制做灾难恢复。

平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。

何时使用

小/中应用、边缘计算和读密集工作负载用 SQLite。高写并发(单写者)避免。

如何做

1. 文件 — sqlite3 mydb.sqlite,单文件 2. Schema — SQL 中 CREATE TABLE 3. WAL — PRAGMA journal_mode=WAL 并发读 4. Litestream — litestream replicate 到 S3 5. 恢复 — litestream restore 从 S3 6. 备份 — .backup 命令或复制文件 7. 客户端 — better-sqlite3(同步)或 sql.js(异步)

示例

import Database from "better-sqlite3"; const db = new Database("mydb.sqlite"); db.pragma("journal_mode = WAL"); // 并发读 db.exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)"); const insert = db.prepare("INSERT INTO users (name) VALUES (?)"); insert.run("Alice"); # Litestream 配置 — litestream.yml dbs: - path: mydb.sqlite replicas: - url: s3://mybucket/mydb.sqlite sync-interval: 1s # 用 litestream 运行 litestream replicate -config litestream.yml

常见问题

  • ⚠数据库锁定 — 单写者,用 WAL 模式并发读
  • ⚠无复制 — 单文件,用 Litestream 做 S3 备份
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓启用 WAL 模式 — 写时并发读,大性能提升
  • ✓复制用 Litestream — 持续 S3 备份,即时恢复
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答