<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>架构 on Snow</title>
        <link>https://SymphonyW.github.io/zh-cn/tags/%E6%9E%B6%E6%9E%84/</link>
        <description>Recent content in 架构 on Snow</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>Snow</copyright>
        <lastBuildDate>Mon, 28 Sep 2026 20:17:30 +0800</lastBuildDate><atom:link href="https://SymphonyW.github.io/zh-cn/tags/%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>互联网架构演进：从单机到云原生，一篇讲清楚</title>
        <link>https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/</link>
        <pubDate>Mon, 28 Sep 2026 20:17:30 +0800</pubDate>
        
        <guid>https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/</guid>
        <description>&lt;img src="https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/bg.svg" alt="Featured image of post 互联网架构演进：从单机到云原生，一篇讲清楚" /&gt;&lt;h1 id=&#34;互联网架构演进从单机到云原生一篇讲清楚&#34;&gt;互联网架构演进：从单机到云原生，一篇讲清楚
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;这篇文章基于视频《互联网架构就这？1个故事讲清楚》整理，并加入了一些工程化解释。它不是逐字稿，而是把视频里最有价值的那条线拎出来：&lt;strong&gt;架构不是一开始设计出来的，而是业务规模一步步逼出来的。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;






    


&lt;div class=&#34;video-wrapper&#34;&gt;
    &lt;iframe src=&#34;https://player.bilibili.com/player.html?as_wide=1&amp;amp;high_quality=1&amp;amp;page=1&amp;bvid=BV1M15Q6eEhL&#34;
            scrolling=&#34;no&#34;
            frameborder=&#34;no&#34;
            framespacing=&#34;0&#34;
            allowfullscreen=&#34;true&#34;
    &gt;
    &lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/bg.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/bg.svg&#34; alt=&#34;互联网架构演进封面&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;很多人学架构时会被一堆名词砸晕：负载均衡、读写分离、缓存、分库分表、RPC、注册中心、消息队列、微服务、Kubernetes……如果只背概念，很容易知道“有什么”，却不知道“为什么会出现”。&lt;/p&gt;
&lt;p&gt;更好的理解方式是：把一个网站想象成从 0 开始长大。每次流量变大、数据变多、团队变大，原来的方案就会暴露一个瓶颈。于是架构升级一步，解决一个主要矛盾，同时引入新的复杂度。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/evolution-roadmap.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/evolution-roadmap.svg&#34; alt=&#34;从单机到云原生的演进路线图&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;阶段&lt;/th&gt;
&lt;th&gt;当时最痛的问题&lt;/th&gt;
&lt;th&gt;典型解法&lt;/th&gt;
&lt;th&gt;新代价&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;单机架构&lt;/td&gt;
&lt;td&gt;先把业务跑起来&lt;/td&gt;
&lt;td&gt;应用、数据库、文件都放一台机器&lt;/td&gt;
&lt;td&gt;扩展能力弱，单点明显&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;应用与数据分离&lt;/td&gt;
&lt;td&gt;应用和数据库抢资源&lt;/td&gt;
&lt;td&gt;独立应用服务器与数据库服务器&lt;/td&gt;
&lt;td&gt;多一层网络调用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;应用集群&lt;/td&gt;
&lt;td&gt;单台应用扛不住并发&lt;/td&gt;
&lt;td&gt;Nginx / HAProxy + 多应用节点&lt;/td&gt;
&lt;td&gt;Session、部署一致性要处理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;数据库读写分离&lt;/td&gt;
&lt;td&gt;大量读请求压垮主库&lt;/td&gt;
&lt;td&gt;主库写、从库读&lt;/td&gt;
&lt;td&gt;主从延迟和读一致性问题&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;多级缓存&lt;/td&gt;
&lt;td&gt;热点数据反复打到数据库&lt;/td&gt;
&lt;td&gt;浏览器缓存、本地缓存、Redis、CDN&lt;/td&gt;
&lt;td&gt;缓存穿透、击穿、雪崩、失效策略&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;分库分表&lt;/td&gt;
&lt;td&gt;单库单表容量和写入到顶&lt;/td&gt;
&lt;td&gt;垂直拆库、水平分表&lt;/td&gt;
&lt;td&gt;跨库查询、分布式事务、全局 ID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CDN 与反向代理&lt;/td&gt;
&lt;td&gt;跨地域访问慢，后端暴露风险高&lt;/td&gt;
&lt;td&gt;CDN、Nginx、WAF、SSL 卸载&lt;/td&gt;
&lt;td&gt;缓存刷新和边缘一致性&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;搜索与 NoSQL&lt;/td&gt;
&lt;td&gt;SQL 不适合全文检索和多变结构&lt;/td&gt;
&lt;td&gt;Elasticsearch、MongoDB、HBase 等&lt;/td&gt;
&lt;td&gt;多存储同步和数据口径管理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;分布式服务&lt;/td&gt;
&lt;td&gt;单体越来越难维护和发布&lt;/td&gt;
&lt;td&gt;RPC、注册中心、消息队列&lt;/td&gt;
&lt;td&gt;服务治理、链路排障、最终一致性&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;微服务&lt;/td&gt;
&lt;td&gt;服务继续膨胀，交付节奏不一致&lt;/td&gt;
&lt;td&gt;网关、熔断、限流、追踪、配置中心&lt;/td&gt;
&lt;td&gt;运维复杂度显著上升&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;容器化与云原生&lt;/td&gt;
&lt;td&gt;服务太多，人工部署不可控&lt;/td&gt;
&lt;td&gt;Docker、Kubernetes、CI/CD、云平台&lt;/td&gt;
&lt;td&gt;平台建设和学习成本&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;核心脉络&#34;&gt;核心脉络
&lt;/h2&gt;&lt;p&gt;架构演进最重要的不是“用了多少技术”，而是每一步都要回答三个问题：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;问题&lt;/th&gt;
&lt;th&gt;解释&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;当前瓶颈在哪里？&lt;/td&gt;
&lt;td&gt;是 CPU 不够、数据库扛不住、网络太远，还是团队协作卡住了&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;引入什么组件解决？&lt;/td&gt;
&lt;td&gt;负载均衡、缓存、分片、异步消息、服务拆分，各有适用边界&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;付出的代价是什么？&lt;/td&gt;
&lt;td&gt;性能通常是用复杂度换来的，不能只看收益&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;单机时代的价值是快。一个小网站、一个后台系统、一个 MVP，最开始完全可以用一台机器跑应用和数据库。这个阶段追求的是低成本验证，而不是提前把 Kubernetes、服务网格、消息队列全搬进来。&lt;strong&gt;能用简单方案解决的问题，就不要过早分布式。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;当流量变大，最先撞到的是资源竞争：应用在吃 CPU 和内存，数据库在吃磁盘 I/O 和缓存，两者混在一台机器上互相拖累。把应用和数据库拆到不同机器，是第一次非常自然的升级。&lt;/p&gt;
&lt;p&gt;接下来，应用层通常比数据库层更容易横向扩容。多加几台应用服务器，再用 Nginx 或 HAProxy 做负载均衡，请求就能被分摊出去。这里会遇到第一个“分布式味道”的问题：用户 Session 不能只放在某台应用机器上，否则用户下一次请求被转发到另一台机器时就可能丢状态。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/traffic-path.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/traffic-path.svg&#34; alt=&#34;典型读请求链路：从用户到缓存再到数据库&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;读流量继续增长后，数据库会成为核心瓶颈。多数互联网业务是读多写少，比如浏览商品、看文章、查资料、刷列表。于是主库负责写，从库负责读，读请求可以横向扩展。但这也意味着主从复制存在延迟：刚写完的数据，马上读从库时可能还没同步过去。&lt;/p&gt;
&lt;p&gt;缓存是下一次大提速。浏览器缓存减少重复下载，CDN 把静态资源放到离用户更近的边缘节点，本地缓存减少进程外调用，Redis 这类分布式缓存挡住大部分热点读请求。缓存的本质是用空间换时间，但它不是免费午餐：缓存失效、脏数据、热点 Key、穿透和雪崩都需要设计。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;数据层怎么长大&#34;&gt;数据层怎么长大
&lt;/h2&gt;&lt;p&gt;数据库的演进可以单独看成一条线：从一台主库，到主从复制，再到分片，再到多种存储协作。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/data-scale.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/data-scale.svg&#34; alt=&#34;数据层扩展：主从、分片与专用存储&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;数据问题&lt;/th&gt;
&lt;th&gt;常见方案&lt;/th&gt;
&lt;th&gt;适合场景&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;读多写少&lt;/td&gt;
&lt;td&gt;主从复制、读写分离&lt;/td&gt;
&lt;td&gt;商品详情、文章详情、资料页&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;热点读&lt;/td&gt;
&lt;td&gt;Redis / 本地缓存 / CDN&lt;/td&gt;
&lt;td&gt;首页、榜单、用户基础信息&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;单表太大&lt;/td&gt;
&lt;td&gt;水平分表&lt;/td&gt;
&lt;td&gt;订单、消息、日志、流水&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;业务边界清晰&lt;/td&gt;
&lt;td&gt;垂直分库&lt;/td&gt;
&lt;td&gt;用户库、商品库、订单库、支付库&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;全文检索&lt;/td&gt;
&lt;td&gt;Elasticsearch&lt;/td&gt;
&lt;td&gt;商品搜索、站内搜索、日志检索&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;灵活结构&lt;/td&gt;
&lt;td&gt;MongoDB / 文档库&lt;/td&gt;
&lt;td&gt;内容、配置、埋点、可变属性&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;海量写入&lt;/td&gt;
&lt;td&gt;HBase / Cassandra / 时序库&lt;/td&gt;
&lt;td&gt;监控、IoT、行为日志&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;分库分表不是“数据库优化的高级形态”，而是单库单表确实扛不住后的手段。它能把数据分散出去，也会带来跨库 Join 难、跨分片事务难、分页统计难、扩容迁移难等问题。&lt;/p&gt;
&lt;p&gt;一个比较稳妥的经验是：先优化索引、SQL、缓存和读写分离；只有当数据量、写入量或单表维护成本真的压上来，再进入分库分表。架构升级要被证据推动，而不是被焦虑推动。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;从单体到服务化&#34;&gt;从单体到服务化
&lt;/h2&gt;&lt;p&gt;当系统功能越来越多，单体应用会从“简单”慢慢变成“沉重”。所有模块共用一套代码、一套数据库、一条发布流水线，一个小功能也要跟整个系统一起上线。团队变大后，代码冲突、发布排队、故障影响面都会变得很难受。&lt;/p&gt;
&lt;p&gt;服务化的第一步是按业务边界拆开：用户服务、商品服务、订单服务、支付服务、库存服务、推荐服务。拆开之后，每个服务可以独立开发、独立部署、独立扩容。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/service-governance.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/service-governance.svg&#34; alt=&#34;微服务治理：网关、注册中心、消息队列与可观测性&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;但服务拆开后，新的问题马上出现：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;新问题&lt;/th&gt;
&lt;th&gt;需要的能力&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;服务地址动态变化&lt;/td&gt;
&lt;td&gt;注册中心与服务发现&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;服务之间要高效调用&lt;/td&gt;
&lt;td&gt;RPC / HTTP API / gRPC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;下游故障会拖垮上游&lt;/td&gt;
&lt;td&gt;超时、重试、熔断、降级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;高峰写入冲击核心链路&lt;/td&gt;
&lt;td&gt;消息队列削峰填谷&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;一个请求跨很多服务&lt;/td&gt;
&lt;td&gt;链路追踪、日志聚合、指标监控&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;对外入口越来越乱&lt;/td&gt;
&lt;td&gt;API 网关、认证、限流、路由&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;消息队列是服务化里非常关键的一块。它把同步调用变成异步事件，让订单创建、库存扣减、积分发放、短信通知、搜索索引更新等动作不必全部堵在一个请求里完成。代价是系统从“立即一致”变成“最终一致”，业务上要能接受中间状态。&lt;/p&gt;
&lt;p&gt;微服务不是单体的反面，也不是架构的终点。它适合业务边界稳定、团队规模较大、部署节奏不同、局部扩容需求明显的系统。如果项目还小，团队也小，强行微服务反而会把工程复杂度提前引爆。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;云原生解决的是交付问题&#34;&gt;云原生解决的是交付问题
&lt;/h2&gt;&lt;p&gt;当服务数量来到几十、上百个，真正痛苦的往往不只是代码，而是交付和运维：环境不一致、发布步骤多、机器资源浪费、扩容靠人工、故障恢复慢。&lt;/p&gt;
&lt;p&gt;Docker 先把应用和依赖打成标准镜像，解决“在我机器上能跑”的问题。Kubernetes 再把镜像调度到集群里，通过声明式配置维持期望状态：副本少了就补，节点挂了就迁，版本升级按策略滚动。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/cloud-native-delivery.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/internet-architecture-evolution/cloud-native-delivery.svg&#34; alt=&#34;云原生交付链路：从代码到镜像再到集群&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;这时架构的关注点从“单个服务怎么写”扩展到“整个平台怎么运行”：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;能力&lt;/th&gt;
&lt;th&gt;云原生里的对应组件&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;构建与发布&lt;/td&gt;
&lt;td&gt;CI/CD、镜像仓库、GitOps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;运行与调度&lt;/td&gt;
&lt;td&gt;Docker、containerd、Kubernetes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;配置与密钥&lt;/td&gt;
&lt;td&gt;ConfigMap、Secret、配置中心&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;弹性伸缩&lt;/td&gt;
&lt;td&gt;HPA、自动扩缩容、弹性云资源&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;故障恢复&lt;/td&gt;
&lt;td&gt;健康检查、自愈、滚动回滚&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;可观测性&lt;/td&gt;
&lt;td&gt;Metrics、Logs、Tracing、告警&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;云原生并不是“把应用放进容器”这么简单。它更像是一套围绕自动化交付、弹性扩缩容和故障自愈建立起来的平台能力。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;常见误区&#34;&gt;常见误区
&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;误区&lt;/th&gt;
&lt;th&gt;更合理的理解&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;一上来就微服务才高级&lt;/td&gt;
&lt;td&gt;小系统先单体，等边界和压力清楚后再拆&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;上了 Redis 就不会慢&lt;/td&gt;
&lt;td&gt;缓存命中率、淘汰策略、热点 Key 和回源保护同样重要&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;分库分表能解决所有数据库问题&lt;/td&gt;
&lt;td&gt;它解决容量和吞吐，也会制造查询、事务、迁移复杂度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MQ 能保证绝对一致&lt;/td&gt;
&lt;td&gt;MQ 更多是解耦和削峰，常见结果是最终一致&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kubernetes 会自动让系统高可用&lt;/td&gt;
&lt;td&gt;K8s 提供平台能力，应用本身仍要处理超时、重试、状态和容量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;架构越复杂越厉害&lt;/td&gt;
&lt;td&gt;好架构是在当前约束下足够简单、足够可靠、可继续演进&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最后可以用一张“什么时候升级”的表来压轴：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;你看到的现象&lt;/th&gt;
&lt;th&gt;优先考虑&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;单机 CPU / 内存 / I/O 长期打满&lt;/td&gt;
&lt;td&gt;应用与数据库分离，或垂直扩容&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;应用层 QPS 扛不住&lt;/td&gt;
&lt;td&gt;应用集群 + 负载均衡&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;数据库读压力高&lt;/td&gt;
&lt;td&gt;索引优化、读写分离、缓存&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;热点数据重复查询&lt;/td&gt;
&lt;td&gt;多级缓存、CDN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;单表过大、写入变慢&lt;/td&gt;
&lt;td&gt;分库分表、冷热分离&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;搜索体验差&lt;/td&gt;
&lt;td&gt;Elasticsearch 等搜索引擎&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;单体发布慢、团队互相阻塞&lt;/td&gt;
&lt;td&gt;按业务边界服务化&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;服务太多、部署混乱&lt;/td&gt;
&lt;td&gt;容器化、Kubernetes、CI/CD&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;总结&#34;&gt;总结
&lt;/h2&gt;&lt;p&gt;互联网架构演进不是一条炫技路线，而是一条不断处理主要矛盾的路线：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;先跑起来
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; 扛住更多请求
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; 保护数据库
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; 拆开数据与业务边界
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; 让服务独立交付
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; 让平台自动化运行
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果只记一句话：&lt;strong&gt;架构升级的本质，是在业务增长带来的新瓶颈面前，用可接受的复杂度换取性能、可用性、可扩展性和交付效率。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;真正好的架构师，不是把所有热门技术都塞进系统里，而是知道此刻最应该解决哪个问题，也知道每个方案会带来什么代价。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;参考资料&#34;&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;原视频：&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1M15Q6eEhL/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;互联网架构就这？1个故事讲清楚&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;辅助整理：&lt;a class=&#34;link&#34; href=&#34;https://jishuzhan.net/article/2060519174396522497&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;互联网架构演进精读：从单机到云原生&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B 站视频嵌入使用本站已有 &lt;code&gt;bilibili&lt;/code&gt; shortcode；本文配图为基于内容重新绘制的本地 SVG。&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>一文搞懂 SaaS、PaaS、BaaS：那些五花八门的&#34;aaS&#34;到底是什么</title>
        <link>https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/</link>
        <pubDate>Tue, 07 Jul 2026 23:10:08 +0800</pubDate>
        
        <guid>https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/</guid>
        <description>&lt;img src="https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/bg.png" alt="Featured image of post 一文搞懂 SaaS、PaaS、BaaS：那些五花八门的&#34;aaS&#34;到底是什么" /&gt;&lt;h1 id=&#34;一文搞懂-saaspaasbaas那些五花八门的aas到底是什么&#34;&gt;一文搞懂 SaaS、PaaS、BaaS：那些五花八门的&amp;quot;aaS&amp;quot;到底是什么
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;SaaS、PaaS、IaaS、BaaS、FaaS、DaaS、AIaaS…… 满世界都是&amp;quot;aaS&amp;quot;。本文从三层模型讲起，逐个拆解它们的本质、责任划分与适用场景，最后给一张决策树，帮你下次选型不再发懵。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一先搞懂为什么会有这么多aas&#34;&gt;一、先搞懂：为什么会有这么多&amp;quot;aaS&amp;quot;？
&lt;/h2&gt;&lt;p&gt;想象你 2010 年开了一家创业公司，要做一款 App。那时你需要：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;找机房、谈专线、买机柜&lt;/li&gt;
&lt;li&gt;采购服务器，装系统、装数据库&lt;/li&gt;
&lt;li&gt;配 Nginx、配负载均衡&lt;/li&gt;
&lt;li&gt;部署业务代码、配置监控告警&lt;/li&gt;
&lt;li&gt;凌晨三点被电话叫起来处理磁盘告警&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;光这些&amp;quot;非业务&amp;quot;的事就能耗掉一个小团队几个月。于是云厂商出现了，他们说：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;你不用买服务器了，我租给你；你不用装数据库了，我托管；你甚至不用写后端，我帮你写。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;XaaS 的本质就是把&amp;quot;非核心业务&amp;quot;的某一层打包成可按需使用的服务&lt;/strong&gt;。X 是什么，就把什么服务化：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把&lt;strong&gt;软件&lt;/strong&gt;服务化 → SaaS&lt;/li&gt;
&lt;li&gt;把&lt;strong&gt;平台&lt;/strong&gt;服务化 → PaaS&lt;/li&gt;
&lt;li&gt;把&lt;strong&gt;基础设施&lt;/strong&gt;服务化 → IaaS&lt;/li&gt;
&lt;li&gt;把&lt;strong&gt;后端&lt;/strong&gt;服务化 → BaaS&lt;/li&gt;
&lt;li&gt;把&lt;strong&gt;函数&lt;/strong&gt;服务化 → FaaS&lt;/li&gt;
&lt;li&gt;……&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;理解了这个公式，再看满屏的&amp;quot;aaS&amp;quot;就不会眼晕了。下面我们从最经典的三层模型开始。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;二云服务三层模型iaas--paas--saas&#34;&gt;二、云服务三层模型：IaaS / PaaS / SaaS
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/cloud-stack.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/cloud-stack.svg&#34; alt=&#34;云服务三层模型：IaaS / PaaS / SaaS&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;这是云计算最经典的分层。从下到上：&lt;strong&gt;IaaS → PaaS → SaaS&lt;/strong&gt;，越往上云厂商承担越多，越往下用户掌控越细。&lt;/p&gt;
&lt;h3 id=&#34;21-iaas基础设施即服务&#34;&gt;2.1 IaaS：基础设施即服务
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;面向运维&lt;/strong&gt;。云厂商把服务器、网络、存储虚拟化后按需出租，你拿到的是一台台虚拟机（或裸金属），剩下的 OS、中间件、应用全由你装。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;典型产品&lt;/strong&gt;：AWS EC2、阿里云 ECS、腾讯云 CVM、Azure VM、AWS S3、阿里云 OSS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;你管&lt;/strong&gt;：OS、运行时、应用、数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;厂商管&lt;/strong&gt;：虚拟化、硬件、网络、机房&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;适合&lt;/strong&gt;：需要底层控制权的团队，比如要跑自建 K8s、自管数据库、特殊内核模块&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 拿到一台 ECS 后，你还得自己干这些&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh root@your-ecs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;yum install -y nginx mysql
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl start nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 凌晨三点被告警叫醒的也是你&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;22-paas平台即服务&#34;&gt;2.2 PaaS：平台即服务
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;面向开发者&lt;/strong&gt;。云厂商帮你把运行时（Java/Go/Node/Python）、中间件、部署流程都搭好，你只需要把代码扔上去，平台自动构建、部署、扩缩容。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;典型产品&lt;/strong&gt;：Heroku、Google App Engine、Vercel、Netlify、Render、阿里云 EDAS、腾讯云 TSF&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;你管&lt;/strong&gt;：代码、数据、应用配置&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;厂商管&lt;/strong&gt;：运行时、OS、虚拟化、硬件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;适合&lt;/strong&gt;：中小团队、创业项目，想专注业务不养运维&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Heroku 风格：一行命令上线&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push heroku main
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 不用关心服务器在哪、装了什么 OS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;23-saas软件即服务&#34;&gt;2.3 SaaS：软件即服务
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;面向最终用户&lt;/strong&gt;。云厂商直接交付一个可用的软件，你开账号就能用，连代码都不用写。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;典型产品&lt;/strong&gt;：钉钉、飞书、Gmail、Notion、Salesforce、企业微信、Zoom、Shopify&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;你管&lt;/strong&gt;：使用、配置、数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;厂商管&lt;/strong&gt;：应用本身 + 全部底层&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;适合&lt;/strong&gt;：协作、办公、CRM、HR 等通用需求，没必要自己造轮子&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 一个判断技巧：如果你&amp;quot;开账号就能用&amp;quot;，那就是 SaaS；如果&amp;quot;要写代码再部署&amp;quot;，是 PaaS；如果&amp;quot;要先开虚拟机再装东西&amp;quot;，是 IaaS。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;三责任划分矩阵谁在管哪一层&#34;&gt;三、责任划分矩阵：谁在管哪一层
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/responsibility-matrix.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/responsibility-matrix.svg&#34; alt=&#34;责任划分矩阵：谁在管哪一层&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;光看定义容易糊涂，画张矩阵图就清晰了。表格里蓝色是用户负责，灰色是厂商负责。&lt;/p&gt;
&lt;p&gt;观察几个关键点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据永远归用户&lt;/strong&gt;：哪怕是 SaaS，业务数据也是你的，云厂商不能动。这是合规底线。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IaaS 的边界在虚拟化层&lt;/strong&gt;：你管 OS 以上，厂商管 Hypervisor 以下。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PaaS 把 OS 和运行时也接走了&lt;/strong&gt;：你只面对&amp;quot;代码 + 数据&amp;quot;两件事。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SaaS 把应用层也接走&lt;/strong&gt;：你只面对&amp;quot;使用 + 数据&amp;quot;。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;经典段子：用 On-Prem 时，连空调坏了、机房漏水都是你的事。用 SaaS 之后，你只剩&amp;quot;我的数据归我&amp;quot;这一件事。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;四baas让前端移动开发者少写后端&#34;&gt;四、BaaS：让前端/移动开发者&amp;quot;少写后端&amp;quot;
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/baas-arch.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/baas-arch.svg&#34; alt=&#34;BaaS 架构：前端/移动开发者的&amp;amp;quot;后端自助餐&amp;amp;quot;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;BaaS（Backend as a Service）面向&lt;strong&gt;前端 / 移动开发者&lt;/strong&gt;。它把&amp;quot;后端通用能力&amp;quot;——认证、数据库、文件存储、推送、云函数——打包成 SDK，前端调用即可，几乎不用写后端代码。&lt;/p&gt;
&lt;h3 id=&#34;41-baas-提供的六大件&#34;&gt;4.1 BaaS 提供的六大件
&lt;/h3&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;能力&lt;/th&gt;
&lt;th&gt;解决什么&lt;/th&gt;
&lt;th&gt;例子&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;认证 Auth&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;不用自己写登录注册、Token、OAuth&lt;/td&gt;
&lt;td&gt;邮箱密码 / 微信 / Google 一键登录&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;数据库 DB&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;不用部署 MySQL/Mongo，直接 SDK 读写&lt;/td&gt;
&lt;td&gt;Firestore / Supabase Postgres&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;存储 Storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;不用搭对象存储，SDK 直传图片视频&lt;/td&gt;
&lt;td&gt;Firebase Storage / S3 直传&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;云函数 Function&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;写少量服务端逻辑（如发邮件、对账）&lt;/td&gt;
&lt;td&gt;Firebase Cloud Functions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;推送 Push&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;不用对接 APNs/FCM&lt;/td&gt;
&lt;td&gt;FCM 模板消息&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;分析 Analytics&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;不用自己埋点统计&lt;/td&gt;
&lt;td&gt;用户行为 / 漏斗 / 留存&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;42-baas-vs-paas差在哪&#34;&gt;4.2 BaaS vs PaaS：差在哪
&lt;/h3&gt;&lt;p&gt;很多人会把 BaaS 和 PaaS 混淆，关键区别在&lt;strong&gt;面向对象&lt;/strong&gt;和&lt;strong&gt;抽象层次&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;维度&lt;/th&gt;
&lt;th&gt;PaaS&lt;/th&gt;
&lt;th&gt;BaaS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;面向&lt;/td&gt;
&lt;td&gt;通用应用开发者&lt;/td&gt;
&lt;td&gt;前端 / 移动开发者&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;抽象&lt;/td&gt;
&lt;td&gt;&amp;ldquo;你的代码跑在我平台上&amp;rdquo;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;通用后端我帮你写好了，你调 SDK&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;代码&lt;/td&gt;
&lt;td&gt;你写完整后端&lt;/td&gt;
&lt;td&gt;你几乎不写后端，只写前端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;灵活&lt;/td&gt;
&lt;td&gt;高（任意后端逻辑）&lt;/td&gt;
&lt;td&gt;中（受 SDK 模型约束）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;简单说：&lt;strong&gt;PaaS 给你&amp;quot;运行环境&amp;quot;，BaaS 给你&amp;quot;现成后端&amp;quot;&lt;/strong&gt;。Heroku 是 PaaS，Firebase 是 BaaS，Vercel 介于两者之间（前端 PaaS + 边缘函数）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;43-baas-的甜蜜区与雷区&#34;&gt;4.3 BaaS 的甜蜜区与雷区
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;甜蜜区&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;创业 MVP、个人作品：几天就能上线一个有登录、有数据库的 App&lt;/li&gt;
&lt;li&gt;内容型/社交型小程序：CRUD 占大头，复杂逻辑少&lt;/li&gt;
&lt;li&gt;Hackathon 项目：48 小时交付必备&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;雷区&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;复杂业务逻辑&lt;/strong&gt;：当你的&amp;quot;云函数&amp;quot;开始堆积上百个、互相调用时，调试和测试会很痛苦&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强一致性事务&lt;/strong&gt;：BaaS 默认的 NoSQL（如 Firestore）事务能力弱于关系型数据库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;厂商锁定&lt;/strong&gt;：SDK 渗透到前端代码每个角落，迁出成本极高&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;成本曲线&lt;/strong&gt;：免费额度用完后，按调用次数计费可能比自建贵&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;实践经验：BaaS 适合&amp;quot;0 到 1&amp;quot;，不适合&amp;quot;100 到 1000&amp;quot;。一旦业务跑起来，往往要逐步把核心模块从 BaaS 迁回自建后端。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;五faas函数即服务与无服务器架构&#34;&gt;五、FaaS：函数即服务与无服务器架构
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/faas-flow.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/faas-flow.svg&#34; alt=&#34;FaaS 工作流：事件驱动 &amp;#43; 按需调用 &amp;#43; 自动伸缩&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;FaaS（Function as a Service）是&amp;quot;无服务器（Serverless）&amp;ldquo;的核心形态。你只写一个&lt;strong&gt;函数&lt;/strong&gt;，云厂商负责：何时启动、跑几份、怎么扩缩、怎么计费。&lt;/p&gt;
&lt;h3 id=&#34;51-faas-的四个特征&#34;&gt;5.1 FaaS 的四个特征
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;事件驱动&lt;/strong&gt;：函数不会常驻，由 HTTP 请求、对象存储事件、消息队列、定时器等触发&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;按需启动&lt;/strong&gt;：无请求时实例数为 0，不收钱；有请求时拉起实例处理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动伸缩&lt;/strong&gt;：QPS 高就加实例，从 0 到 10000 都不用你管&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;按用量计费&lt;/strong&gt;：按执行时长 × 内存 × 调用次数，毫秒级计费&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// AWS Lambda 风格：一个函数就是一个处理单元
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;exports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;handler&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;orderId&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;orderId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;sendNotification&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;orderId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;statusCode&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;200&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;OK&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;52-冷启动faas-的阿喀琉斯之踵&#34;&gt;5.2 冷启动：FaaS 的阿喀琉斯之踵
&lt;/h3&gt;&lt;p&gt;第一次调用或长时间空闲后，云厂商需要拉镜像、初始化运行时，这段时间叫&lt;strong&gt;冷启动&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;语言&lt;/th&gt;
&lt;th&gt;典型冷启动&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Node.js / Python&lt;/td&gt;
&lt;td&gt;100–300ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java&lt;/td&gt;
&lt;td&gt;500ms–3s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Go / Rust&lt;/td&gt;
&lt;td&gt;50–200ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C++（编译镜像）&lt;/td&gt;
&lt;td&gt;100–500ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;应对方案：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Provisioned Concurrency&lt;/strong&gt;（预留并发）：厂商始终保温一批实例，代价是要付&amp;quot;保温费&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;精简依赖&lt;/strong&gt;：Java 的 Spring 启动慢，换 Quarkus / GraalVM 原生镜像可大幅压缩&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;避免在 handler 外做重活&lt;/strong&gt;：模块加载阶段的代码每次冷启动都会跑&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;53-faas-适合什么&#34;&gt;5.3 FaaS 适合什么
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;突发流量&lt;/strong&gt;：秒杀、抢购、IoT 海量上报&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;事件处理&lt;/strong&gt;：图片上传后自动压缩、订单创建后发通知&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;定时任务&lt;/strong&gt;：每天凌晨跑数据汇总&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Webhook 接收&lt;/strong&gt;：接收 GitHub / Stripe 回调&lt;/li&gt;
&lt;li&gt;❌ &lt;strong&gt;长连接 / 流式&lt;/strong&gt;：WebSocket、视频流不适合&lt;/li&gt;
&lt;li&gt;❌ &lt;strong&gt;重状态服务&lt;/strong&gt;：函数实例是无状态的，状态要放外部 DB&lt;/li&gt;
&lt;li&gt;❌ &lt;strong&gt;超低延迟&lt;/strong&gt;：冷启动无法保证 P99&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;54-baas--faas--serverless&#34;&gt;5.4 BaaS + FaaS = Serverless
&lt;/h3&gt;&lt;p&gt;业内常说的&amp;quot;Serverless&amp;quot;通常指 &lt;strong&gt;BaaS + FaaS 的组合&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用 BaaS 搞定认证、数据库、存储&lt;/li&gt;
&lt;li&gt;用 FaaS 写少量自定义逻辑&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;整个应用没有&amp;quot;常驻服务器&amp;quot;，按用量付费，自动伸缩。这是云原生演进的极致形态。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;六其他常见-xaas-一览&#34;&gt;六、其他常见 XaaS 一览
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/xaas-family.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/xaas-family.svg&#34; alt=&#34;XaaS 全家福：所有&amp;amp;quot;as a Service&amp;amp;quot;模式一览&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;除了上面五种，还有一堆&amp;quot;aaS&amp;quot;。这里挑常见的列一遍，方便对照：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;名称&lt;/th&gt;
&lt;th&gt;全称&lt;/th&gt;
&lt;th&gt;一句话&lt;/th&gt;
&lt;th&gt;代表产品&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Data as a Service&lt;/td&gt;
&lt;td&gt;数据订阅/查询 API&lt;/td&gt;
&lt;td&gt;天气 API、Bloomberg、企查查&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AIaaS / MaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AI / Model as a Service&lt;/td&gt;
&lt;td&gt;AI 能力 / 大模型 API 调用&lt;/td&gt;
&lt;td&gt;GLM API、OpenAI、通义千问、文心一言&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DBaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Database as a Service&lt;/td&gt;
&lt;td&gt;托管数据库&lt;/td&gt;
&lt;td&gt;RDS、MongoDB Atlas、PolarDB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Containers as a Service&lt;/td&gt;
&lt;td&gt;容器即服务&lt;/td&gt;
&lt;td&gt;阿里云 ACK、AWS EKS、Google GKE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;STaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Storage as a Service&lt;/td&gt;
&lt;td&gt;对象存储&lt;/td&gt;
&lt;td&gt;OSS、S3、COS、七牛云&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Network as a Service&lt;/td&gt;
&lt;td&gt;网络即服务&lt;/td&gt;
&lt;td&gt;CDN、SDN、Cloudflare&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SECaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Security as a Service&lt;/td&gt;
&lt;td&gt;安全即服务&lt;/td&gt;
&lt;td&gt;WAF、DDoS 高防、Snyk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DRaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Disaster Recovery as a Service&lt;/td&gt;
&lt;td&gt;灾备即服务&lt;/td&gt;
&lt;td&gt;跨地域备份、容灾切换&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WaaS / DaaS-桌面&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Workspace / Desktop as a Service&lt;/td&gt;
&lt;td&gt;工作空间 / 桌面云&lt;/td&gt;
&lt;td&gt;阿里云无影、AWS WorkSpaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ITaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IT as a Service&lt;/td&gt;
&lt;td&gt;IT 整体外包&lt;/td&gt;
&lt;td&gt;MSP 托管服务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;BPaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Business Process as a Service&lt;/td&gt;
&lt;td&gt;业务流程即服务&lt;/td&gt;
&lt;td&gt;财务 SaaS、HR SaaS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;iPaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Integration as a Service&lt;/td&gt;
&lt;td&gt;集成即服务&lt;/td&gt;
&lt;td&gt;Zapier、MuleSoft、Workato&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;VPaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Video Platform as a Service&lt;/td&gt;
&lt;td&gt;视频即服务&lt;/td&gt;
&lt;td&gt;声网、Twilio Video&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;注意 &lt;strong&gt;DaaS 有歧义&lt;/strong&gt;：可以是 Data as a Service，也可以是 Desktop as a Service（桌面云）。结合上下文判断。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;注意 &lt;strong&gt;BaaS 也有歧义&lt;/strong&gt;：Backend as a Service 之外，有时也指 Blockchain as a Service（区块链即服务），如阿里云区块链服务。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;七如何选型从团队到场景&#34;&gt;七、如何选型：从团队到场景
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/selection-guide.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82-saaspaasbaas%E9%82%A3%E4%BA%9B%E4%BA%94%E8%8A%B1%E5%85%AB%E9%97%A8%E7%9A%84aas%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88/selection-guide.svg&#34; alt=&#34;如何选型：从团队规模到业务场景&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;没有最好的 XaaS，只有最匹配当前阶段的方案。下面这张决策树覆盖了 90% 的选型场景：&lt;/p&gt;
&lt;h3 id=&#34;71-决策五步法&#34;&gt;7.1 决策五步法
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;直接用现成软件就行？&lt;/strong&gt; → 选 &lt;strong&gt;SaaS&lt;/strong&gt;（钉钉 / Notion / Salesforce）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;要自己写代码？&lt;/strong&gt; → 进入下一步&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;前端为主，后端只是 CRUD？&lt;/strong&gt; → 选 &lt;strong&gt;BaaS&lt;/strong&gt;（Firebase / Supabase）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;是事件驱动 + 突发流量？&lt;/strong&gt; → 选 &lt;strong&gt;FaaS&lt;/strong&gt;（Lambda / 函数计算）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;有专职运维，需要底层控制权？&lt;/strong&gt; → 选 &lt;strong&gt;IaaS&lt;/strong&gt;；否则 → 选 &lt;strong&gt;PaaS&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;72-按团队规模看典型组合&#34;&gt;7.2 按团队规模看典型组合
&lt;/h3&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;团队规模&lt;/th&gt;
&lt;th&gt;典型组合&lt;/th&gt;
&lt;th&gt;理由&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;个人 / 1–3 人&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;BaaS + SaaS&lt;/td&gt;
&lt;td&gt;不写后端，专注产品&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;小团队 / 5–15 人&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PaaS + DBaaS + SaaS&lt;/td&gt;
&lt;td&gt;不养运维，用 PaaS 部署 + 托管数据库&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;中型 / 20–100 人&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IaaS + CaaS + 部分 PaaS&lt;/td&gt;
&lt;td&gt;开始有运维，自己跑 K8s，但用托管 DB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;大型 / 100+ 人&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;混合云 + 多 XaaS&lt;/td&gt;
&lt;td&gt;核心自建，非核心用 SaaS，关键能力用 IaaS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;73-一个真实的组合案例&#34;&gt;7.3 一个真实的组合案例
&lt;/h3&gt;&lt;p&gt;一个常见的中型 SaaS 创业公司技术栈：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;代码托管         GitHub（SaaS）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CI/CD            GitHub Actions（SaaS）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;监控告警         Datadog（SaaS / 监控 SECaaS）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;日志             阿里云 SLS（PaaS）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;应用部署         阿里云 ACK（CaaS / 跑在 IaaS 上）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;数据库           PolarDB（DBaaS）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;缓存             Redis 云版（DBaaS / PaaS）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;对象存储         OSS（STaaS）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CDN              阿里云 CDN（NaaS）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;大模型调用       GLM API（AIaaS / MaaS）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;可以看到，&lt;strong&gt;真实项目几乎从不&amp;quot;只用一种 XaaS&amp;quot;，而是按层次组合&lt;/strong&gt;：底层 IaaS 提供算力，中层用 DBaaS / CaaS / STaaS 减负，上层用 SaaS 处理通用需求。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;八避坑指南与趋势&#34;&gt;八、避坑指南与趋势
&lt;/h2&gt;&lt;h3 id=&#34;81-三个常见坑&#34;&gt;8.1 三个常见坑
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;厂商锁定（Vendor Lock-in）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BaaS / FaaS 的 SDK 渗透到代码每个角落，迁出成本极高&lt;/li&gt;
&lt;li&gt;应对：核心模块抽象出适配层（Repository / Service 模式），关键逻辑可平迁&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;成本随用量爆炸&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FaaS 按调用次数计费，QPS 上去后可能比包年服务器贵&lt;/li&gt;
&lt;li&gt;应对：监控用量曲线，高频稳定流量用包年实例，低频突发用 FaaS&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;数据合规边界&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SaaS 中&amp;quot;数据&amp;quot;始终归你，但物理存储在哪国、谁有访问权，要确认&lt;/li&gt;
&lt;li&gt;应对：金融、医疗等敏感行业选私有化部署或本地化 region&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;82-三个趋势&#34;&gt;8.2 三个趋势
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;PaaS 与 FaaS 融合&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Vercel、Netlify 把静态托管 + 边缘函数 + 服务端函数揉在一起，PaaS 与 FaaS 边界越来越模糊&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MaaS 崛起&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;大模型 API（GLM、OpenAI）成为新一类&amp;quot;基础设施&amp;quot;，AIaaS 正在成为继 IaaS/PaaS/SaaS 之后的第四层&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;行业云 BPaaS&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;不只卖技术栈，还卖业务流程：金融云、医疗云、政务云把行业 know-how 也服务化&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;九一张表收尾&#34;&gt;九、一张表收尾
&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模型&lt;/th&gt;
&lt;th&gt;全称&lt;/th&gt;
&lt;th&gt;面向&lt;/th&gt;
&lt;th&gt;你管什么&lt;/th&gt;
&lt;th&gt;厂商管什么&lt;/th&gt;
&lt;th&gt;代表产品&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Infrastructure as a Service&lt;/td&gt;
&lt;td&gt;运维&lt;/td&gt;
&lt;td&gt;OS 及以上&lt;/td&gt;
&lt;td&gt;虚拟化、硬件、网络&lt;/td&gt;
&lt;td&gt;EC2 / ECS / CVM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Platform as a Service&lt;/td&gt;
&lt;td&gt;开发者&lt;/td&gt;
&lt;td&gt;代码、数据&lt;/td&gt;
&lt;td&gt;运行时、OS、硬件&lt;/td&gt;
&lt;td&gt;Heroku / Vercel / EDAS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Software as a Service&lt;/td&gt;
&lt;td&gt;最终用户&lt;/td&gt;
&lt;td&gt;使用、数据&lt;/td&gt;
&lt;td&gt;全部&lt;/td&gt;
&lt;td&gt;钉钉 / Notion / Salesforce&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;BaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Backend as a Service&lt;/td&gt;
&lt;td&gt;前端/移动&lt;/td&gt;
&lt;td&gt;UI、业务逻辑&lt;/td&gt;
&lt;td&gt;通用后端能力&lt;/td&gt;
&lt;td&gt;Firebase / Supabase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;FaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Function as a Service&lt;/td&gt;
&lt;td&gt;开发者&lt;/td&gt;
&lt;td&gt;函数代码&lt;/td&gt;
&lt;td&gt;触发、伸缩、计费&lt;/td&gt;
&lt;td&gt;Lambda / 函数计算&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DBaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Database as a Service&lt;/td&gt;
&lt;td&gt;开发者&lt;/td&gt;
&lt;td&gt;数据、Schema&lt;/td&gt;
&lt;td&gt;数据库运维&lt;/td&gt;
&lt;td&gt;RDS / MongoDB Atlas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Containers as a Service&lt;/td&gt;
&lt;td&gt;运维&lt;/td&gt;
&lt;td&gt;容器、镜像&lt;/td&gt;
&lt;td&gt;K8s 控制、节点&lt;/td&gt;
&lt;td&gt;ACK / EKS / GKE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AIaaS/MaaS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AI/Model as a Service&lt;/td&gt;
&lt;td&gt;应用集成方&lt;/td&gt;
&lt;td&gt;Prompt、调用&lt;/td&gt;
&lt;td&gt;模型、推理&lt;/td&gt;
&lt;td&gt;GLM API / OpenAI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;总结&#34;&gt;总结
&lt;/h2&gt;&lt;p&gt;一句话概括：&lt;strong&gt;XaaS = 把&amp;quot;X&amp;quot;服务化，让用户按需使用、按量付费&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IaaS&lt;/strong&gt; 把硬件服务化，给运维用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PaaS&lt;/strong&gt; 把运行环境服务化，给开发者用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SaaS&lt;/strong&gt; 把软件服务化，给最终用户用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BaaS&lt;/strong&gt; 把通用后端服务化，给前端/移动开发者用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FaaS&lt;/strong&gt; 把函数服务化，给事件驱动场景用&lt;/li&gt;
&lt;li&gt;其余的 DaaS / DBaaS / CaaS / AIaaS …… 都是把对应能力服务化的具体形态&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下次再看到陌生的&amp;quot;aaS&amp;quot;，先用公式套一下：&amp;ldquo;它把什么服务化了？面向谁？我管什么？&amp;quot;，三问之后基本就能定位。&lt;/p&gt;
&lt;p&gt;记住：&lt;strong&gt;选型不是越上层越好，而是越匹配越好&lt;/strong&gt;。能用 SaaS 解决的别上 PaaS，能用 PaaS 解决的别上 IaaS；但如果你是金融核心系统，可能 On-Prem 才是唯一答案。技术选型的本质，是在&amp;quot;控制权、省心程度、成本&amp;quot;三者之间找平衡。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>数据库全景指南：从 SQLite 到 MongoDB，一文搞懂选型与差异</title>
        <link>https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/</link>
        <pubDate>Tue, 07 Jul 2026 21:04:00 +0800</pubDate>
        
        <guid>https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/</guid>
        <description>&lt;img src="https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/bg.png" alt="Featured image of post 数据库全景指南：从 SQLite 到 MongoDB，一文搞懂选型与差异" /&gt;&lt;h1 id=&#34;数据库全景指南从-sqlite-到-mongodb一文搞懂选型与差异&#34;&gt;数据库全景指南：从 SQLite 到 MongoDB，一文搞懂选型与差异
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;MySQL、PostgreSQL、MongoDB、Redis、Cassandra、Neo4j、Elasticsearch…… 数据库多到让人眼花。本文从分类、原理、模型、选型、组合五个维度，带你看清它们各自的边界与适用场景。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一为什么会有这么多数据库&#34;&gt;一、为什么会有这么多数据库？
&lt;/h2&gt;&lt;p&gt;先抛一个真实的尴尬场景：&lt;/p&gt;
&lt;p&gt;新人入职第一天，被安排设计一个博客系统。他下意识打开 Navicat，建了一张 &lt;code&gt;articles&lt;/code&gt; 表，写到第三天发现：文章正文要存富文本，字数可能上万；评论数据要嵌套在文章里；标签数量不固定；还要做全文搜索。继续用 MySQL 越写越别扭，最后只能上 ES 做搜索、MongoDB 存正文、MySQL 存元数据。&lt;/p&gt;
&lt;p&gt;这不是个例。&lt;strong&gt;没有一种数据库能赢下所有场景&lt;/strong&gt;，根本原因是存储需求里同时存在四组矛盾：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;结构化 vs 灵活&lt;/strong&gt;：业务模型固定还是多变&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一致性 vs 可用性&lt;/strong&gt;：要数据绝对正确，还是允许短暂数据不一致换可用性&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;规模 vs 性能&lt;/strong&gt;：单机极致性能还是分布式海量吞吐&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;读写均衡 vs 海量写入&lt;/strong&gt;：典型 Web 应用还是 IoT 流式写入&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;围绕这些矛盾，业界演化出了关系型、键值、文档、列族、图、搜索、时序、列存分析等 &lt;strong&gt;八大分支&lt;/strong&gt;。每解决一组矛盾，就诞生一类新数据库。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;二数据库分类全景图&#34;&gt;二、数据库分类全景图
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/db-categories.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/db-categories.svg&#34; alt=&#34;数据库分类全景图&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;上图把主流数据库按&amp;quot;数据模型 + 适用场景&amp;quot;分成了 8 类。下面我们逐类展开，但在分类之前，必须先理解三个底层概念：&lt;strong&gt;ACID、CAP、BASE&lt;/strong&gt;。它们决定了数据库的&amp;quot;性格&amp;quot;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;三acid-vs-base两种一致性哲学&#34;&gt;三、ACID vs BASE：两种一致性哲学
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/acid-base.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/acid-base.svg&#34; alt=&#34;ACID vs BASE：两种一致性哲学&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id=&#34;acid关系型数据库的承诺&#34;&gt;ACID：关系型数据库的承诺
&lt;/h3&gt;&lt;p&gt;ACID 是事务的四大保证，是关系型数据库压箱底的能力：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;字母&lt;/th&gt;
&lt;th&gt;含义&lt;/th&gt;
&lt;th&gt;通俗解释&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;A&lt;/strong&gt; Atomicity 原子性&lt;/td&gt;
&lt;td&gt;事务要么全成功，要么全回滚&lt;/td&gt;
&lt;td&gt;转账扣款和加款必须同时发生&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;C&lt;/strong&gt; Consistency 一致性&lt;/td&gt;
&lt;td&gt;事务前后满足所有约束&lt;/td&gt;
&lt;td&gt;主键、外键、CHECK 不能被破坏&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;I&lt;/strong&gt; Isolation 隔离性&lt;/td&gt;
&lt;td&gt;并发事务互不干扰&lt;/td&gt;
&lt;td&gt;MVCC + 锁机制保证&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;D&lt;/strong&gt; Durability 持久性&lt;/td&gt;
&lt;td&gt;提交后即使宕机也不丢&lt;/td&gt;
&lt;td&gt;通过 WAL / redo log 实现&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;为 ACID 付出的代价&lt;/strong&gt;：锁竞争、跨节点协调延迟、水平扩展难。这也是为什么单机 MySQL 通常撑到几千 QPS 就开始考虑读写分离。&lt;/p&gt;
&lt;h3 id=&#34;base分布式系统的妥协&#34;&gt;BASE：分布式系统的妥协
&lt;/h3&gt;&lt;p&gt;当系统走向分布式，强一致性的代价过高，业界提出 BASE 作为 AP 系统的设计哲学：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BA&lt;/strong&gt; Basically Available 基本可用：允许响应变慢、允许功能降级&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S&lt;/strong&gt; Soft State 软状态：允许存在中间状态&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E&lt;/strong&gt; Eventually Consistent 最终一致：不保证任意时刻一致，但保证最终收敛&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;关键认知：&lt;strong&gt;ACID 中的 C 是事务一致性（约束不被破坏），CAP 中的 C 是副本一致性（多节点数据相同）&lt;/strong&gt;，两者不是一回事。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;四cap-定理分布式系统的三角抉择&#34;&gt;四、CAP 定理：分布式系统的三角抉择
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/cap-theorem.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/cap-theorem.svg&#34; alt=&#34;CAP 定理：分布式系统的三角抉择&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;CAP 定理由 Eric Brewer 在 2000 年提出，断言：&lt;strong&gt;一个分布式系统最多只能同时满足 Consistency（一致性）、Availability（可用性）、Partition tolerance（分区容错）三者中的两个&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;三个关键认知&#34;&gt;三个关键认知
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;① P 不可避免&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;真实分布式系统必然存在网络分区（交换机抖动、机房断连、节点宕机）。所以工程师实际上只能在 &lt;strong&gt;C 和 A 之间做选择&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分区时拒绝写入 → CP，保证数据正确，但牺牲可用性&lt;/li&gt;
&lt;li&gt;分区时仍可读写 → AP，保证可用性，但允许数据短暂不一致&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;② 三种组合的典型代表&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;组合&lt;/th&gt;
&lt;th&gt;牺牲项&lt;/th&gt;
&lt;th&gt;典型数据库&lt;/th&gt;
&lt;th&gt;典型场景&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CA&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;分区容错&lt;/td&gt;
&lt;td&gt;MySQL 单机、PostgreSQL 单机&lt;/td&gt;
&lt;td&gt;传统单机业务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;可用性&lt;/td&gt;
&lt;td&gt;HBase、MongoDB、Redis 集群&lt;/td&gt;
&lt;td&gt;强一致优先的金融、配置&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;一致性&lt;/td&gt;
&lt;td&gt;Cassandra、DynamoDB、Eureka&lt;/td&gt;
&lt;td&gt;高可用的社交、推荐&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;③ 同一业务可灵活切换&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;注册中心是个经典例子：&lt;strong&gt;ZooKeeper 是 CP&lt;/strong&gt;，选举期间不可用；&lt;strong&gt;Eureka 是 AP&lt;/strong&gt;，节点之间不强制同步。Netflix 选 Eureka，因为它能容忍注册信息短暂不一致，但不能容忍服务发现挂掉。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;五关系型数据库稳如泰山的基石&#34;&gt;五、关系型数据库：稳如泰山的基石
&lt;/h2&gt;&lt;p&gt;关系型数据库以 &lt;strong&gt;二维表 + SQL + ACID 事务&lt;/strong&gt; 为核心，是 90% 业务系统的默认选择。&lt;/p&gt;
&lt;h3 id=&#34;51-五大主流-rdbms-对比&#34;&gt;5.1 五大主流 RDBMS 对比
&lt;/h3&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;数据库&lt;/th&gt;
&lt;th&gt;厂商 / 协议&lt;/th&gt;
&lt;th&gt;强项&lt;/th&gt;
&lt;th&gt;适用场景&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MySQL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;开源（GPL/商业双协议）&lt;/td&gt;
&lt;td&gt;生态成熟、运维资料最多&lt;/td&gt;
&lt;td&gt;Web 应用、电商、CMS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;开源（BSD）&lt;/td&gt;
&lt;td&gt;复杂查询、JSON、PostGIS、扩展性强&lt;/td&gt;
&lt;td&gt;复杂业务、地理数据、数据分析&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SQLite&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;开源（公有领域）&lt;/td&gt;
&lt;td&gt;嵌入式、零配置、单文件&lt;/td&gt;
&lt;td&gt;移动端、嵌入式、原型、测试&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Oracle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;商业&lt;/td&gt;
&lt;td&gt;企业级功能、稳定性、技术支持&lt;/td&gt;
&lt;td&gt;银行、电信、政府核心系统&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SQL Server&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;商业（微软）&lt;/td&gt;
&lt;td&gt;与 .NET 生态深度集成&lt;/td&gt;
&lt;td&gt;企业内部系统、Windows 环境&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;52-选型经验&#34;&gt;5.2 选型经验
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;个人项目 / 小工具&lt;/strong&gt;：SQLite，单文件零配置&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Web 应用首选&lt;/strong&gt;：MySQL（运维生态好）或 PostgreSQL（功能强、复杂查询爽）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;企业核心系统有预算&lt;/strong&gt;：Oracle 或 SQL Server，看团队技术栈&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;要不要选 PostgreSQL 而不是 MySQL？&lt;/strong&gt; 如果业务里有复杂分析、地理数据、强约束、JSON 字段，PG 更合适；如果只是 CRUD + 简单关联，MySQL 更省心&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;53-关系型的硬伤&#34;&gt;5.3 关系型的硬伤
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;水平扩展难&lt;/strong&gt;：分库分表后跨库 JOIN、事务都成噩梦，需要引入 ShardingSphere、Vitess 之类的中间件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Schema 变更贵&lt;/strong&gt;：上亿行表加索引可能锁表几小时&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高并发写入瓶颈&lt;/strong&gt;：单机通常几千 QPS，靠缓存兜底&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;六nosql-的崛起四大家族&#34;&gt;六、NoSQL 的崛起：四大家族
&lt;/h2&gt;&lt;p&gt;NoSQL（Not Only SQL）的核心动机：&lt;strong&gt;通过放松某个约束（一致性 / Schema / 关系），换取扩展性、性能或灵活性&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;61-sql-vs-nosql-数据模型对比&#34;&gt;6.1 SQL vs NoSQL 数据模型对比
&lt;/h3&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/sql-vs-nosql.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/sql-vs-nosql.svg&#34; alt=&#34;SQL vs NoSQL：数据模型架构对比&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;左图是关系型的方式：&lt;strong&gt;范式化拆表 + 外键关联&lt;/strong&gt;，查 Alice 的订单要 JOIN 两张表。
右图是文档型的方式：&lt;strong&gt;聚合存储 + 内嵌文档&lt;/strong&gt;，Alice 的订单直接嵌在她的文档里，一次读取拿全。&lt;/p&gt;
&lt;p&gt;两种模型各有利弊：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;维度&lt;/th&gt;
&lt;th&gt;关系型（SQL）&lt;/th&gt;
&lt;th&gt;文档型（NoSQL）&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Schema&lt;/td&gt;
&lt;td&gt;严格固定&lt;/td&gt;
&lt;td&gt;灵活可变&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;关联查询&lt;/td&gt;
&lt;td&gt;JOIN 强&lt;/td&gt;
&lt;td&gt;弱（要靠应用层）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;数据冗余&lt;/td&gt;
&lt;td&gt;低（范式化）&lt;/td&gt;
&lt;td&gt;高（反范式）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;事务&lt;/td&gt;
&lt;td&gt;强 ACID&lt;/td&gt;
&lt;td&gt;弱（多文档 4.0+ 才支持）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扩展性&lt;/td&gt;
&lt;td&gt;垂直为主&lt;/td&gt;
&lt;td&gt;易水平分片&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;适合&lt;/td&gt;
&lt;td&gt;关系复杂、强一致&lt;/td&gt;
&lt;td&gt;模型多变、读多写少&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;62-键值型redis&#34;&gt;6.2 键值型：Redis
&lt;/h3&gt;&lt;p&gt;Redis 是最被低估的&amp;quot;瑞士军刀&amp;quot;。它表面上是个缓存，实际上能做：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;缓存&lt;/strong&gt;：最常见，热点数据加速&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;会话存储&lt;/strong&gt;：分布式 Session&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;排行榜&lt;/strong&gt;：ZSet 天生支持&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;消息队列&lt;/strong&gt;：List / Stream&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限流器&lt;/strong&gt;：INCR + EXPIRE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分布式锁&lt;/strong&gt;：SETNX / Redlock&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;选型提醒&lt;/strong&gt;：Redis 是 &lt;strong&gt;CP 系统&lt;/strong&gt;（集群模式下）—— 主节点挂掉会触发故障转移，期间集群不可用。不是所有 Redis 都&amp;quot;高可用&amp;quot;。&lt;/p&gt;
&lt;h3 id=&#34;63-文档型mongodb&#34;&gt;6.3 文档型：MongoDB
&lt;/h3&gt;&lt;p&gt;MongoDB 用 BSON（二进制 JSON）存储，每个文档自包含。它的甜点场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内容管理&lt;/strong&gt;：文章、评论、附件，结构天然嵌套&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IoT 设备元数据&lt;/strong&gt;：不同设备字段不同，灵活 Schema 太香&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;快速迭代业务&lt;/strong&gt;：需求变就加字段，不用 ALTER TABLE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志聚合&lt;/strong&gt;：MongoDB 的聚合管道 + 副本集很合用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;坑点&lt;/strong&gt;：MongoDB 4.0 才支持多文档事务，复杂事务场景慎用。索引设计不当会让查询慢到怀疑人生。&lt;/p&gt;
&lt;h3 id=&#34;64-列族型cassandra--hbase&#34;&gt;6.4 列族型：Cassandra / HBase
&lt;/h3&gt;&lt;p&gt;列族型数据库把&amp;quot;行&amp;quot;打散成&amp;quot;列族&amp;quot;，&lt;strong&gt;同一列的数据连续存储&lt;/strong&gt;，对&amp;quot;按列聚合 + 海量写入&amp;quot;特别友好。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cassandra&lt;/strong&gt;：AWS Dynamo 论文的开源实现，无主架构，写入性能极强。Netflix、Instagram、Apple 都在用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HBase&lt;/strong&gt;：基于 HDFS，强一致，适合离线大数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ScyllaDB&lt;/strong&gt;：用 C++ 重写的 Cassandra，性能高一个数量级&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;典型场景&lt;/strong&gt;：时序数据、推荐特征存储、消息历史归档。Cassandra 在写入 QPS 上能轻松甩开 MySQL 一个数量级。&lt;/p&gt;
&lt;h3 id=&#34;65-图型neo4j&#34;&gt;6.5 图型：Neo4j
&lt;/h3&gt;&lt;p&gt;如果业务核心是 &lt;strong&gt;关系&lt;/strong&gt;（不是表关联，而是多跳关系遍历），用图数据库比 SQL 递归查询快几个数量级。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;// Neo4j 查询：找到 Alice 三度人脉里喜欢 Go 语言的人
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MATCH (a:User {name:&amp;#39;Alice&amp;#39;})-[:KNOWS*1..3]-(friend:User)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;WHERE friend.language = &amp;#39;Go&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RETURN friend
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;典型场景&lt;/strong&gt;：社交网络（好友推荐）、反欺诈（团伙识别）、知识图谱、IT 资产拓扑。&lt;/p&gt;
&lt;p&gt;用 MySQL 写&amp;quot;找三度人脉&amp;quot;要用 4 层自连接，性能爆炸；Neo4j 用邻接表存储，时间复杂度近似 O(1)。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;七专用场景数据库搜索--时序--列存&#34;&gt;七、专用场景数据库：搜索 / 时序 / 列存
&lt;/h2&gt;&lt;p&gt;通用数据库做不到极致，专用数据库在特定领域把性能压榨到极限。&lt;/p&gt;
&lt;h3 id=&#34;71-搜索引擎elasticsearch&#34;&gt;7.1 搜索引擎：Elasticsearch
&lt;/h3&gt;&lt;p&gt;ES 用 &lt;strong&gt;倒排索引&lt;/strong&gt; 实现秒级全文检索，是 ELK（Elasticsearch + Logstash + Kibana）的核心。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;商品搜索&lt;/strong&gt;：分词、同义词、纠错、相关性排序&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志分析&lt;/strong&gt;：海量日志聚合，按时间维度切片&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可观测性&lt;/strong&gt;：APM、链路追踪数据存储&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;重要认知&lt;/strong&gt;：ES 不是数据库替代品。它写入延迟较高（近实时，1 秒刷新），不适合做强一致主存储。通常 &lt;strong&gt;MySQL 是真相源，ES 是搜索副本&lt;/strong&gt;，通过 Canal/Debezium 同步。&lt;/p&gt;
&lt;h3 id=&#34;72-时序数据库influxdb--timescaledb&#34;&gt;7.2 时序数据库：InfluxDB / TimescaleDB
&lt;/h3&gt;&lt;p&gt;时序数据有显著特征：&lt;strong&gt;写多读少、按时间顺序、自动降采样、旧数据可丢弃&lt;/strong&gt;。专用 TSDB 的写入性能比 MySQL 高 1-2 个数量级。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;InfluxDB&lt;/strong&gt;：Go 写的，单机性能强，TSM 存储引擎&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TimescaleDB&lt;/strong&gt;：PostgreSQL 扩展，能用 SQL，事务保证更好&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prometheus&lt;/strong&gt;：监控专用，pull 模型&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TDengine&lt;/strong&gt;：国产，物联网场景优化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;典型场景&lt;/strong&gt;：服务器监控、IoT 传感器、金融行情、用户行为埋点。&lt;/p&gt;
&lt;h3 id=&#34;73-列存分析clickhouse&#34;&gt;7.3 列存分析：ClickHouse
&lt;/h3&gt;&lt;p&gt;OLAP 场景的核心诉求：&lt;strong&gt;扫描 TB 级数据，做 GROUP BY 聚合，秒级返回&lt;/strong&gt;。行存数据库（MySQL）做这种扫描会读大量无关列，列存数据库只读需要的列，性能差几十倍。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- ClickHouse 典型查询：秒级扫描 10 亿行
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;toDate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;event_time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;day&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;city&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;uniq&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;user_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;uv&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;events&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;event_time&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;today&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;GROUP&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;day&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;city&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;ORDER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;day&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DESC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pv&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;DESC&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;对比&lt;/strong&gt;：同样的查询，MySQL 要几十分钟，ClickHouse 通常 1 秒内。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;八数据库选型决策树&#34;&gt;八、数据库选型决策树
&lt;/h2&gt;&lt;p&gt;讲了这么多，实战怎么选？下图给出一份决策路径：&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/db-selection.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/db-selection.svg&#34; alt=&#34;数据库选型决策树&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id=&#34;三条选型铁律&#34;&gt;三条选型铁律
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;① 先 SQL，后 NoSQL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;绝大多数项目从 MySQL / PostgreSQL 起步就够了。遇到具体瓶颈（缓存、搜索、海量写入、复杂关系）再引入对应专用数据库。一开始就上&amp;quot;全家桶&amp;quot;是过度设计。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;② 没有银弹，组合使用&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;工业界真实系统几乎都是多库组合：核心业务用 MySQL/PG，缓存用 Redis，搜索用 ES，日志用 MongoDB/ES，监控用 InfluxDB，分析用 ClickHouse。&lt;strong&gt;让每个数据库只做它最擅长的事&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;③ 团队熟悉度优先&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;再先进的数据库，没人会运维也是灾难。Cassandra 写入性能强，但运维门槛极高，国内很多团队踩坑后还是换回了 MySQL 分库分表。&lt;strong&gt;选团队能掌控的，而不是最潮的&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;九真实项目中的数据库组合架构&#34;&gt;九、真实项目中的数据库组合架构
&lt;/h2&gt;&lt;p&gt;光说不练假把式。下图是一个典型电商系统的多库协同架构：&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/stack-combination.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/zh-cn/p/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97%E4%BB%8E-sqlite-%E5%88%B0-mongodb%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82%E9%80%89%E5%9E%8B%E4%B8%8E%E5%B7%AE%E5%BC%82/stack-combination.svg&#34; alt=&#34;真实项目中的数据库组合架构&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id=&#34;数据流拆解&#34;&gt;数据流拆解
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;① 写路径&lt;/strong&gt;：订单服务先写 MySQL（强一致保证），同时发 Kafka 事件，下游消费者异步更新 ES 搜索索引和推荐系统特征库。这是经典的 &lt;strong&gt;&amp;ldquo;先写主库，再异步同步&amp;rdquo;&lt;/strong&gt; 模式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;② 读路径&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;请求类型&lt;/th&gt;
&lt;th&gt;走的数据库&lt;/th&gt;
&lt;th&gt;理由&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;商品详情&lt;/td&gt;
&lt;td&gt;Redis 缓存 → MongoDB&lt;/td&gt;
&lt;td&gt;缓存挡 95% 流量，回源用文档库装多变 SKU&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;商品搜索&lt;/td&gt;
&lt;td&gt;Elasticsearch&lt;/td&gt;
&lt;td&gt;倒排索引秒级响应&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;好友推荐&lt;/td&gt;
&lt;td&gt;Neo4j&lt;/td&gt;
&lt;td&gt;多跳关系遍历&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;个人订单&lt;/td&gt;
&lt;td&gt;MySQL&lt;/td&gt;
&lt;td&gt;强一致，按用户分库&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;监控大盘&lt;/td&gt;
&lt;td&gt;InfluxDB&lt;/td&gt;
&lt;td&gt;时序聚合，秒级出图&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;③ 监控旁路&lt;/strong&gt;：所有服务通过 SDK 把指标推送到 InfluxDB，&lt;strong&gt;不参与业务主链路&lt;/strong&gt;，监控挂掉不影响交易。这是旁路系统的设计铁律。&lt;/p&gt;
&lt;h3 id=&#34;为什么要拆&#34;&gt;为什么要拆？
&lt;/h3&gt;&lt;p&gt;如果不拆，全塞进 MySQL 会发生什么？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;商品搜索做 LIKE &amp;lsquo;%关键词%&amp;rsquo; → 全表扫描，慢到超时&lt;/li&gt;
&lt;li&gt;监控指标每秒几十万条写入 → MySQL 单机扛不住&lt;/li&gt;
&lt;li&gt;好友推荐用 4 层自连接 → 几秒出不来结果&lt;/li&gt;
&lt;li&gt;商品 SKU 字段每类目都不同 → ALTER TABLE 改到吐血&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每个专用数据库的存在，都是为了 &lt;strong&gt;解决某一类 MySQL 不擅长的问题&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;十核心差异对照表&#34;&gt;十、核心差异对照表
&lt;/h2&gt;&lt;p&gt;最后用一张表把主流数据库的关键指标摊开对比：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;数据库&lt;/th&gt;
&lt;th&gt;类型&lt;/th&gt;
&lt;th&gt;一致性&lt;/th&gt;
&lt;th&gt;Schema&lt;/th&gt;
&lt;th&gt;事务&lt;/th&gt;
&lt;th&gt;水平扩展&lt;/th&gt;
&lt;th&gt;典型 QPS&lt;/th&gt;
&lt;th&gt;适合场景&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MySQL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;关系&lt;/td&gt;
&lt;td&gt;ACID&lt;/td&gt;
&lt;td&gt;严格&lt;/td&gt;
&lt;td&gt;强&lt;/td&gt;
&lt;td&gt;难（需中间件）&lt;/td&gt;
&lt;td&gt;几千&lt;/td&gt;
&lt;td&gt;Web 主流&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;关系&lt;/td&gt;
&lt;td&gt;ACID&lt;/td&gt;
&lt;td&gt;严格&lt;/td&gt;
&lt;td&gt;强&lt;/td&gt;
&lt;td&gt;难&lt;/td&gt;
&lt;td&gt;几千&lt;/td&gt;
&lt;td&gt;复杂业务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SQLite&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;关系&lt;/td&gt;
&lt;td&gt;ACID&lt;/td&gt;
&lt;td&gt;严格&lt;/td&gt;
&lt;td&gt;强&lt;/td&gt;
&lt;td&gt;不可&lt;/td&gt;
&lt;td&gt;单线程&lt;/td&gt;
&lt;td&gt;嵌入式&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Redis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;KV&lt;/td&gt;
&lt;td&gt;CP&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;弱&lt;/td&gt;
&lt;td&gt;集群分片&lt;/td&gt;
&lt;td&gt;10万+&lt;/td&gt;
&lt;td&gt;缓存&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MongoDB&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;文档&lt;/td&gt;
&lt;td&gt;CP（可调）&lt;/td&gt;
&lt;td&gt;灵活&lt;/td&gt;
&lt;td&gt;4.0+ 多文档&lt;/td&gt;
&lt;td&gt;易分片&lt;/td&gt;
&lt;td&gt;几万&lt;/td&gt;
&lt;td&gt;内容管理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cassandra&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;列族&lt;/td&gt;
&lt;td&gt;AP（可调）&lt;/td&gt;
&lt;td&gt;灵活&lt;/td&gt;
&lt;td&gt;弱&lt;/td&gt;
&lt;td&gt;极易&lt;/td&gt;
&lt;td&gt;10万+ 写入&lt;/td&gt;
&lt;td&gt;海量写入&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Neo4j&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;图&lt;/td&gt;
&lt;td&gt;ACID&lt;/td&gt;
&lt;td&gt;半结构&lt;/td&gt;
&lt;td&gt;强&lt;/td&gt;
&lt;td&gt;难&lt;/td&gt;
&lt;td&gt;几千&lt;/td&gt;
&lt;td&gt;关系网络&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Elasticsearch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;搜索&lt;/td&gt;
&lt;td&gt;近实时&lt;/td&gt;
&lt;td&gt;动态映射&lt;/td&gt;
&lt;td&gt;弱&lt;/td&gt;
&lt;td&gt;易分片&lt;/td&gt;
&lt;td&gt;几万&lt;/td&gt;
&lt;td&gt;全文搜索&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;InfluxDB&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;时序&lt;/td&gt;
&lt;td&gt;CP&lt;/td&gt;
&lt;td&gt;标签+字段&lt;/td&gt;
&lt;td&gt;弱&lt;/td&gt;
&lt;td&gt;集群版收费&lt;/td&gt;
&lt;td&gt;10万+ 写入&lt;/td&gt;
&lt;td&gt;监控指标&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ClickHouse&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;列存&lt;/td&gt;
&lt;td&gt;CP&lt;/td&gt;
&lt;td&gt;严格&lt;/td&gt;
&lt;td&gt;弱&lt;/td&gt;
&lt;td&gt;易分片&lt;/td&gt;
&lt;td&gt;100万+ 写入&lt;/td&gt;
&lt;td&gt;大数据分析&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;总结&#34;&gt;总结
&lt;/h2&gt;&lt;p&gt;回到最初的问题：&lt;strong&gt;SQLite、MySQL、MongoDB 有什么区别？&lt;/strong&gt; 它们不是&amp;quot;谁更好&amp;quot;的关系，而是&amp;quot;为不同问题而生&amp;quot;的不同工具。&lt;/p&gt;
&lt;p&gt;回顾本文核心要点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;没有银弹&lt;/strong&gt;：每种数据库都是某组矛盾的产物，关系型解决一致性、NoSQL 解决扩展性、专用库解决极端场景&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;理论先行&lt;/strong&gt;：理解 ACID / BASE / CAP，是看懂所有数据库设计意图的钥匙&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL 不死&lt;/strong&gt;：关系型依然是 90% 业务系统的默认选择，NoSQL 是补充而非替代&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;组合才是常态&lt;/strong&gt;：工业界真实系统几乎都是多库协同，让每个数据库只做它最擅长的事&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;选型三铁律&lt;/strong&gt;：先 SQL 后 NoSQL、没有银弹要组合、团队熟悉度优先&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下一步行动建议：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;审视你当前的项目&lt;/strong&gt;：是不是把所有数据都塞在 MySQL 里了？哪些场景其实更适合专用数据库？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;挑一个不熟的数据库试一试&lt;/strong&gt;：Redis / MongoDB / ES 任选一个，跑一遍官方 Quick Start&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关注 NewSQL&lt;/strong&gt;：TiDB、CockroachDB、YugabyteDB 这些&amp;quot;既有 ACID 又能水平扩展&amp;quot;的下一代数据库正在崛起&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;记住：&lt;strong&gt;好的架构师不在于会多少种数据库，而在于知道每种数据库的边界在哪&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;本文涉及的所有数据库选型都基于公开文档与工程实践，具体落地还需结合团队技术栈、运维能力、预算综合判断。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        </item>
        
    </channel>
</rss>
