SQL 与 NoSQL 取舍

关系型提供强事务与灵活查询,NoSQL 以水平扩展与模型灵活性见长;选择取决于一致性要求、数据模型稳定性与访问模式,多模型组合存储也常见。

优先 SQL事务与一致性要求高、查询模式多变
优先 NoSQL写入规模大、模式易变、按主键访问为主
组合核心交易用关系型,会话与检索用专用存储

场景对照

场景倾向理由
资金交易与账务关系型强事务与约束校验
会话与购物车键值存储按主键访问、写入量大
检索与日志分析检索引擎/宽列存储倒排或列族访问高效
混合负载多模型组合各取所长,核心数据保持关系型
  • 先用关系型验证分区、只读副本与连接池能覆盖到什么规模
  • 选 NoSQL 前明确访问模式与一致性要求,写清不支持哪类查询
关系型数据库的扩展手段(分区、只读副本、连接池)常被低估;先验证这些手段是否够用。

易错点

  • 为规模焦虑提前引入 NoSQL,事务能力不足返工
  • 多套存储并行无人统筹,一致性靠人工对账

数据来源与参考

  • 《数据密集型应用系统设计》(Kleppmann)第 2 章
  • Martin Fowler 博客:PolyglotPersistence
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌