07 数据库与存储工具
研发团队第一次引入数据基础设施时,最容易低估的不是 SQL 或 API,而是运行边界。一个服务能够启动,只能证明进程活着;只有写入、读取、权限、恢复和清理都形成闭环,依赖才真正可用。
从业务问题选择工具
| 业务问题 | 首选家族 | 关键判断 |
|---|---|---|
| 事务、约束和一致性写入 | 关系型数据库 | 事务边界、复制延迟、连接数、备份恢复与扩展路径 |
| 热点数据、短生命周期状态 | 缓存与 KV | 淘汰策略、持久化、热点键、穿透雪崩与一致性 |
| 灵活文档和聚合查询 | 文档数据库 | schema 治理、索引、分片键、复制集与数据膨胀 |
| 全文检索和多维过滤 | 搜索引擎 | mapping、分片、生命周期、磁盘水位与召回链路 |
| 日志、指标和批量分析 | 分析型数据库 | 表模型、排序键、导入批次、资源隔离与冷热分层 |
| 文件、附件和数据交换 | 对象存储 | endpoint、bucket、prefix、权限、生命周期与流量费用 |
一条可靠的验证链
端口可达、容器健康、控制台能登录都不是最终证据。最小闭环至少要回答:应用身份能否访问、越权是否会被拒绝、数据是否可恢复、危险清理是否有目标确认。
贯穿所有家族的工程约束
- 身份分离:管理员、应用、只读、迁移和备份身份分别授权,应用不复用 root 或 superuser。
- 环境隔离:库名、schema、key、index、bucket 和 prefix 都携带环境与 owner,客户端默认连接非生产地址。
- 凭证治理:仓库只保留占位符;本机、CI 和共享环境使用各自的秘密管理入口,并保留轮换能力。
- 恢复优先:备份文件不是恢复能力。必须在隔离目标上完成恢复、校验数据并记录耗时。
- 容量可见:连接、内存、磁盘、对象数量、写入速率和费用都要有预算及阈值,不能等到资源耗尽再处理。
- 可逆操作:删除、清空、重建索引和移除 volume 前显示目标环境,优先 dry-run,并保留回滚或重建路径。
建议学习顺序
第一次搭建研发依赖,可以先完成 MySQL 或 PostgreSQL、Redis、MongoDB、Elasticsearch、DuckDB 和一种本地 S3 兼容服务。随后再横向比较同家族产品,重点观察权限模型、故障证据、恢复路径和生产架构差异。工具数量不是目标,能够解释为什么选择、怎样验证以及如何退出才是架构能力。
