~/VibeHandbook
$39

09 · 01

数据存储的三种形态

大多数数据库分为三个家族。你不需要去背产品——你需要认出哪种形态适合你的问题。

类型例子最适合取舍
关系型(SQL)PostgreSQL, MySQL, SQLite带关系的结构化数据;任何与金钱或准确性相关的关键场景你必须预先设计 schema;把写入扩展到非常大的规模更难
文档型 / NoSQLMongoDB, Firestore, DynamoDB灵活或嵌套的数据、快速迭代、形态各异的记录容易产生不一致的数据;关系和报表处理起来很别扭
键值型Redis, Memcached, Cloudflare KV缓存、会话、计数器、按已知键的快速查找无法按内容查询;通常不是你的事实来源

对 90% 的项目来说一个好的默认选择:从关系型数据库(Postgres)开始。 它成熟、可预测、强制结构化,并能处理真实应用不可避免会长出来的关系。当你的数据确实没有固定形态时,再去考虑文档存储;而键值存储则作为一个辅助层(缓存),而不是你的主存储。

要避免的陷阱是凭感觉选。"NoSQL 扩展性更好"只对一小撮大多数应用永远碰不到的问题成立,而即便如此,代价也是放弃那些让数据可信赖的一致性保证。挑选与你的数据相匹配的形态,而不是在系统设计视频里听起来最唬人的那个。拿不准时,关系型是稳妥的选择——缓存或文档存储你以后随时可以加上,但解开一团乱麻的 NoSQL 数据模型却很痛苦。

想离线阅读?

获取 PDF + EPUB + 可下载的提示词库 + 版本更新。

$ 获取 PDF — $39