<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>选型 on 纪伟的个人博客</title><link>https://www.jiwei.space/tags/%E9%80%89%E5%9E%8B/</link><description>Recent content in 选型 on 纪伟的个人博客</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Mon, 16 Feb 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://www.jiwei.space/tags/%E9%80%89%E5%9E%8B/index.xml" rel="self" type="application/rss+xml"/><item><title>主流关系数据库横向对比：MySQL / PostgreSQL / Oracle / SQL Server 的架构、特性与选型</title><link>https://www.jiwei.space/posts/database/rdbms-comparison/</link><pubDate>Mon, 16 Feb 2026 10:00:00 +0800</pubDate><guid>https://www.jiwei.space/posts/database/rdbms-comparison/</guid><description>&lt;p&gt;关系数据库的世界，表面上看是“都支持 SQL、都有事务、都有索引”，但真到了选型和排障的时候，MySQL、PostgreSQL、Oracle、SQL Server 之间的差异远比想象中大——连接是进程还是线程、表是堆表还是索引组织表、MVCC 把旧版本放在哪、默认隔离级别是什么……这些“底层选择”直接决定了性能特征、运维方式和适用场景。&lt;/p&gt;
&lt;p&gt;这篇就把这四位最主流的选手放在一起做一次横向对比。不堆砌参数，而是聚焦那些**“同样叫 RDBMS、实现却截然不同”**的关键维度，最后给出选型建议。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;顺带：本文是我数据库系列的&lt;strong&gt;横向补充&lt;/strong&gt;——系列纵向讲了存储引擎、索引、事务、MVCC、复制等专题（见《数据库系列》一至十），这篇把它们横向铺开，看看四大库在每个维度上各自怎么选。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="一四位选手速览"&gt;&lt;a href="#%e4%b8%80%e5%9b%9b%e4%bd%8d%e9%80%89%e6%89%8b%e9%80%9f%e8%a7%88" class="header-anchor"&gt;&lt;/a&gt;一、四位选手速览
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;MySQL&lt;/th&gt;
 &lt;th&gt;PostgreSQL&lt;/th&gt;
 &lt;th&gt;Oracle Database&lt;/th&gt;
 &lt;th&gt;SQL Server&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;出身&lt;/td&gt;
 &lt;td&gt;1995，Monty 创立；现属 Oracle 公司&lt;/td&gt;
 &lt;td&gt;1996，伯克利 POSTGRES 衍生；社区 + EDB 等&lt;/td&gt;
 &lt;td&gt;1977，Oracle 公司&lt;/td&gt;
 &lt;td&gt;1989，微软（源自 Sybase 合作，后独立）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;许可证&lt;/td&gt;
 &lt;td&gt;GPL + 商业双许可&lt;/td&gt;
 &lt;td&gt;PostgreSQL License（类 BSD，极宽松）&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;Web/互联网标配，简单可靠&lt;/td&gt;
 &lt;td&gt;“最先进的开源 RDBMS”，功能全&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;复杂业务 / AI / 地理 / 时序&lt;/td&gt;
 &lt;td&gt;金融 / 电信 / 大型企业&lt;/td&gt;
 &lt;td&gt;.NET / Windows 企业、Azure&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="二一张表看全貌"&gt;&lt;a href="#%e4%ba%8c%e4%b8%80%e5%bc%a0%e8%a1%a8%e7%9c%8b%e5%85%a8%e8%b2%8c" class="header-anchor"&gt;&lt;/a&gt;二、一张表看全貌
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;维度&lt;/th&gt;
 &lt;th&gt;MySQL (InnoDB)&lt;/th&gt;
 &lt;th&gt;PostgreSQL&lt;/th&gt;
 &lt;th&gt;Oracle&lt;/th&gt;
 &lt;th&gt;SQL Server&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;进程 / 连接（fork，较重）&lt;/td&gt;
 &lt;td&gt;进程（dedicated）/ 共享服务器&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;堆表（默认），可选 IOT&lt;/td&gt;
 &lt;td&gt;聚簇（默认），或堆表&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;默认隔离级别&lt;/td&gt;
 &lt;td&gt;REPEATABLE READ&lt;/td&gt;
 &lt;td&gt;READ COMMITTED&lt;/td&gt;
 &lt;td&gt;READ COMMITTED&lt;/td&gt;
 &lt;td&gt;READ COMMITTED（悲观）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MVCC 旧版本存放&lt;/td&gt;
 &lt;td&gt;undo log + purge&lt;/td&gt;
 &lt;td&gt;堆内多版本 + VACUUM&lt;/td&gt;
 &lt;td&gt;undo 段&lt;/td&gt;
 &lt;td&gt;tempdb 版本库（开启快照时）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;索引种类&lt;/td&gt;
 &lt;td&gt;B+树、Hash、全文、空间（有限）&lt;/td&gt;
 &lt;td&gt;B树、Hash、GiST、GIN、BRIN、SP-GiST&lt;/td&gt;
 &lt;td&gt;B树、位图、反键、域索引&lt;/td&gt;
 &lt;td&gt;聚簇/非聚簇、列存、全文、空间&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;复制&lt;/td&gt;
 &lt;td&gt;binlog 主从 / 半同步 / MGR&lt;/td&gt;
 &lt;td&gt;流复制（物理）/ 逻辑复制&lt;/td&gt;
 &lt;td&gt;Data Guard / GoldenGate / RAC&lt;/td&gt;
 &lt;td&gt;AlwaysOn AG / FCI&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;多活&lt;/td&gt;
 &lt;td&gt;MGR 多主（有限制）&lt;/td&gt;
 &lt;td&gt;无原生（外部 Patroni 等）&lt;/td&gt;
 &lt;td&gt;RAC（共享存储多实例）&lt;/td&gt;
 &lt;td&gt;无原生多主&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;过程语言&lt;/td&gt;
 &lt;td&gt;存储过程（SQL/PSM 风格）&lt;/td&gt;
 &lt;td&gt;PL/pgSQL（+ Python/Perl…）&lt;/td&gt;
 &lt;td&gt;PL/SQL（业界标杆）&lt;/td&gt;
 &lt;td&gt;T-SQL&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;td&gt;CLR（.NET 扩展）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;JSON&lt;/td&gt;
 &lt;td&gt;JSON 类型 + 函数&lt;/td&gt;
 &lt;td&gt;JSON / JSONB（可索引，最强）&lt;/td&gt;
 &lt;td&gt;JSON（12c+）&lt;/td&gt;
 &lt;td&gt;NVARCHAR + 函数&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;云服务&lt;/td&gt;
 &lt;td&gt;Aurora MySQL / RDS&lt;/td&gt;
 &lt;td&gt;Aurora PG / Neon / Supabase&lt;/td&gt;
 &lt;td&gt;OCI Autonomous DB&lt;/td&gt;
 &lt;td&gt;Azure SQL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;下面挑几个最能体现“工程哲学差异”的维度展开。&lt;/p&gt;
&lt;h2 id="三架构与连接模型进程-vs-线程"&gt;&lt;a href="#%e4%b8%89%e6%9e%b6%e6%9e%84%e4%b8%8e%e8%bf%9e%e6%8e%a5%e6%a8%a1%e5%9e%8b%e8%bf%9b%e7%a8%8b-vs-%e7%ba%bf%e7%a8%8b" class="header-anchor"&gt;&lt;/a&gt;三、架构与连接模型：进程 vs 线程
&lt;/h2&gt;&lt;p&gt;最容易感知的差异：&lt;strong&gt;一个连接占一个进程，还是占一个线程？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MySQL / SQL Server：线程模型&lt;/strong&gt;。每个连接一个线程，相对轻量，连接数上限较高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL：进程模型（fork）&lt;/strong&gt;。每个连接是一个独立的后端进程。连接一多，内存和 fork 开销就大——所以 PG 高并发场景几乎必备&lt;strong&gt;连接池（pgbouncer / Pgpool）&lt;/strong&gt;。“PG 吃连接数”是经典运维话题，根因就在这。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Oracle：可选&lt;/strong&gt;。dedicated server（每连接一进程）适合长连接；shared server（dispatcher + 共享服务器进程）适合海量短连接。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这一条直接决定了你的连接数规划、内存占用，以及“为什么 PG 要 pgbouncer 而 MySQL 基本不用”。&lt;/p&gt;
&lt;h2 id="四存储模型堆表-vs-索引组织表"&gt;&lt;a href="#%e5%9b%9b%e5%ad%98%e5%82%a8%e6%a8%a1%e5%9e%8b%e5%a0%86%e8%a1%a8-vs-%e7%b4%a2%e5%bc%95%e7%bb%84%e7%bb%87%e8%a1%a8" class="header-anchor"&gt;&lt;/a&gt;四、存储模型：堆表 vs 索引组织表
&lt;/h2&gt;&lt;p&gt;这是理解四大库性能差异的钥匙（《数据库系列（二）》详细讲过，这里横向对照）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;索引组织表（IOT / 聚簇）&lt;/strong&gt;：数据本身就存在主键的 B+ 树叶节点里，&lt;strong&gt;主键即数据&lt;/strong&gt;。
&lt;ul&gt;
&lt;li&gt;MySQL InnoDB（默认）、SQL Server（默认建聚簇索引）、Oracle（可选 IOT）。&lt;/li&gt;
&lt;li&gt;优点：主键点查 / 范围扫极快；代价是二级索引存的是主键值，往往要“回表”。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;堆表（heap）&lt;/strong&gt;：数据和索引分离，索引指向行的物理位置（PG 的 ctid / SQL Server 的 RID）。
&lt;ul&gt;
&lt;li&gt;PostgreSQL（默认）、Oracle（默认）、SQL Server（无聚簇索引时）。&lt;/li&gt;
&lt;li&gt;优点：无主键也能存、二级索引直接定位行、更新更灵活（配合 MVCC，新版本可写到任意空闲块）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一句话：&lt;strong&gt;InnoDB / SQL Server 默认“表就是一棵主键树”；PostgreSQL / Oracle 默认“表是一堆数据 + 若干索引指过去”。&lt;/strong&gt; 这决定了它们在主键查询、二级索引回表、更新碎片上的不同行为。&lt;/p&gt;
&lt;h2 id="五事务与-mvcc同一个思想四种实现"&gt;&lt;a href="#%e4%ba%94%e4%ba%8b%e5%8a%a1%e4%b8%8e-mvcc%e5%90%8c%e4%b8%80%e4%b8%aa%e6%80%9d%e6%83%b3%e5%9b%9b%e7%a7%8d%e5%ae%9e%e7%8e%b0" class="header-anchor"&gt;&lt;/a&gt;五、事务与 MVCC：同一个思想，四种实现
&lt;/h2&gt;&lt;p&gt;四大库都实现了 MVCC（读不阻塞写），但&lt;strong&gt;旧版本放在哪、谁来清理&lt;/strong&gt;各不相同——这是最见功底的地方：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MySQL InnoDB&lt;/strong&gt;：数据页内就地更新，旧版本写入 &lt;strong&gt;undo log&lt;/strong&gt;；读旧版本时用 undo 重构。后台 &lt;strong&gt;purge 线程&lt;/strong&gt;清理不再需要的 undo。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;：旧版本直接作为&lt;strong&gt;新元组留在表堆里&lt;/strong&gt;（用 &lt;code&gt;xmin/xmax&lt;/code&gt; 标记可见性），表会“膨胀”，靠 &lt;strong&gt;VACUUM&lt;/strong&gt;（autovacuum）回收空间。“PG 要调 autovacuum”是运维必修课。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Oracle&lt;/strong&gt;：DML 的前镜像写入 &lt;strong&gt;undo 表空间（undo 段）&lt;/strong&gt;，读一致性从 undo 重构。最成熟的实现，也是 InnoDB / PG 思路的“祖师爷”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL Server&lt;/strong&gt;：默认 RC 是&lt;strong&gt;悲观锁&lt;/strong&gt;（加锁、不存版本）；开启快照隔离（RCSI / SI）后，旧版本写入 &lt;strong&gt;tempdb 的版本库&lt;/strong&gt;。&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;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;MySQL InnoDB&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;REPEATABLE READ&lt;/strong&gt;（用间隙锁 / next-key 锁防幻读，较激进）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PostgreSQL&lt;/td&gt;
 &lt;td&gt;READ COMMITTED&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Oracle&lt;/td&gt;
 &lt;td&gt;READ COMMITTED（只支持 RC 与 SERIALIZABLE）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SQL Server&lt;/td&gt;
 &lt;td&gt;READ COMMITTED（悲观；可切 RCSI）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;MySQL 默认 RR 是个“异类”——大多数库默认 RC。做跨库迁移时，这点锁行为差异要特别留心（RR + 间隙锁容易引发意料外的锁冲突）。&lt;/p&gt;
&lt;h2 id="六索引能力"&gt;&lt;a href="#%e5%85%ad%e7%b4%a2%e5%bc%95%e8%83%bd%e5%8a%9b" class="header-anchor"&gt;&lt;/a&gt;六、索引能力
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL 索引最丰富&lt;/strong&gt;：B-tree、Hash、GiST（范围 / 几何）、&lt;strong&gt;GIN（数组 / 全文 / JSONB 利器）&lt;/strong&gt;、BRIN（海量有序数据）、SP-GiST；还支持&lt;strong&gt;部分索引、表达式索引、覆盖索引&lt;/strong&gt;。配合 JSONB / 数组，PG 能干很多“NoSQL 的活”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MySQL&lt;/strong&gt;：以 B+ 树为主，加全文、空间索引，以及 8.0+ 的降序 / 函数 / 不可见索引；类型相对少，但 InnoDB 聚簇 B+ 树在主键点查和范围扫上极高效。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Oracle&lt;/strong&gt;：B 树、&lt;strong&gt;位图索引&lt;/strong&gt;（适合低基数列，数据仓库利器）、反键索引（消除热点）、域索引；分区与索引组合极其丰富。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL Server&lt;/strong&gt;：聚簇 / 非聚簇、&lt;strong&gt;列存索引&lt;/strong&gt;（列式，OLAP 利器）、全文、空间；内存优化表（Hekaton）还有专属的哈希 / 非聚簇索引。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="七sql-方言与可扩展性"&gt;&lt;a href="#%e4%b8%83sql-%e6%96%b9%e8%a8%80%e4%b8%8e%e5%8f%af%e6%89%a9%e5%b1%95%e6%80%a7" class="header-anchor"&gt;&lt;/a&gt;七、SQL 方言与可扩展性
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;过程语言&lt;/strong&gt;：Oracle &lt;strong&gt;PL/SQL&lt;/strong&gt; 是业界标杆、功能最全；SQL Server &lt;strong&gt;T-SQL&lt;/strong&gt; 在微软生态根深蒂固；PostgreSQL &lt;strong&gt;PL/pgSQL&lt;/strong&gt; 仿照 PL/SQL，还能装 PL/Python、PL/V8 等多语言；MySQL 的存储过程相对朴素。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可扩展性（PG 的杀手锏）&lt;/strong&gt;：PostgreSQL 允许&lt;strong&gt;自定义类型、操作符、索引方法、聚合&lt;/strong&gt;，并通过 &lt;code&gt;CREATE EXTENSION&lt;/code&gt; 装载扩展——于是有了 &lt;strong&gt;PostGIS&lt;/strong&gt;（地理空间）、&lt;strong&gt;pgvector&lt;/strong&gt;（AI 向量）、&lt;strong&gt;TimescaleDB&lt;/strong&gt;（时序）等“长在 PG 上的专用数据库”。这种“一个内核、千变扩展”的生态，是其它三者没有的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CLR（SQL Server）&lt;/strong&gt;：可以用 C# / .NET 写存储过程、类型、函数，和微软技术栈无缝衔接。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Oracle&lt;/strong&gt;：功能强但闭源，扩展主要靠官方和 PL/SQL 包。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="八复制与高可用"&gt;&lt;a href="#%e5%85%ab%e5%a4%8d%e5%88%b6%e4%b8%8e%e9%ab%98%e5%8f%af%e7%94%a8" class="header-anchor"&gt;&lt;/a&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;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;MySQL&lt;/td&gt;
 &lt;td&gt;binlog 异步 / 半同步主从、&lt;strong&gt;MGR 组复制&lt;/strong&gt;（基于 Paxos）、InnoDB Cluster&lt;/td&gt;
 &lt;td&gt;MGR 多主（有冲突约束）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PostgreSQL&lt;/td&gt;
 &lt;td&gt;物理流复制（WAL，同步 / 异步）、逻辑复制（10+）；HA 靠 &lt;strong&gt;Patroni / repmgr&lt;/strong&gt; 等外部编排&lt;/td&gt;
 &lt;td&gt;无原生多主&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Oracle&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Data Guard&lt;/strong&gt;（物理 / 逻辑备库）、&lt;strong&gt;Active Data Guard&lt;/strong&gt;（只读备库）、GoldenGate（逻辑）；&lt;strong&gt;RAC&lt;/strong&gt;（共享存储 + 多实例）&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;RAC 真·多实例 active-active&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SQL Server&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;AlwaysOn AG&lt;/strong&gt;（日志同步，可读次要副本）、FCI（故障转移集群）&lt;/td&gt;
 &lt;td&gt;无原生多主&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;亮点：&lt;strong&gt;Oracle RAC&lt;/strong&gt; 是“共享存储 + 多实例”的真多活架构，独门绝技（也贵）；&lt;strong&gt;MySQL MGR&lt;/strong&gt; 提供了开源版的“类 RAC”多主能力；&lt;strong&gt;PostgreSQL&lt;/strong&gt; 的 HA 高度依赖外部编排（Patroni），原生只有主从。&lt;/p&gt;
&lt;h2 id="九生态与云"&gt;&lt;a href="#%e4%b9%9d%e7%94%9f%e6%80%81%e4%b8%8e%e4%ba%91" class="header-anchor"&gt;&lt;/a&gt;九、生态与云
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MySQL&lt;/strong&gt;：互联网事实标准，配合 Vitess / PlanetScale、Aurora MySQL，云原生方案最成熟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;：开源生态最活跃，Aurora PG、AlloyDB、Neon、Supabase 百花齐放；AI 时代因 &lt;strong&gt;pgvector&lt;/strong&gt; 重新翻红。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Oracle&lt;/strong&gt;：企业级护城河深，Exadata 一体机、OCI Autonomous DB，但云转型相对慢。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL Server&lt;/strong&gt;：和 Windows / .NET / Azure 深度绑定，Azure SQL 是云上主力。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="十选型建议按场景"&gt;&lt;a href="#%e5%8d%81%e9%80%89%e5%9e%8b%e5%bb%ba%e8%ae%ae%e6%8c%89%e5%9c%ba%e6%99%af" class="header-anchor"&gt;&lt;/a&gt;十、选型建议（按场景）
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;互联网 / Web 应用，读多写多，追求简单和生态&lt;/strong&gt; → &lt;strong&gt;MySQL&lt;/strong&gt;。运维资料最多、人才最多、云方案最成熟。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;业务逻辑复杂，要 JSONB / 数组 / 全文 / 地理空间 / AI 向量，追求 SQL 标准与扩展性&lt;/strong&gt; → &lt;strong&gt;PostgreSQL&lt;/strong&gt;。“一个 PG 顶好几个专用库”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;金融 / 电信 / 大型企业，要 RAC 真多活，要最全功能，预算充足&lt;/strong&gt; → &lt;strong&gt;Oracle&lt;/strong&gt;。功能天花板最高，TCO 也最高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;微软技术栈（.NET / Windows / Azure），企业 OLTP + BI 一体&lt;/strong&gt; → &lt;strong&gt;SQL Server&lt;/strong&gt;。和现有基础设施最贴合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;嵌入式 / 移动端 / 边缘&lt;/strong&gt; → &lt;strong&gt;SQLite&lt;/strong&gt;（不在四位之列，但几乎无处不在）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MySQL 的开源替代&lt;/strong&gt; → &lt;strong&gt;MariaDB&lt;/strong&gt;（原作者 Monty 分叉，兼容 MySQL，部分场景特性 / 性能有差异）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="结语"&gt;&lt;a href="#%e7%bb%93%e8%af%ad" class="header-anchor"&gt;&lt;/a&gt;结语
&lt;/h2&gt;&lt;p&gt;四大关系数据库，表面都是“SQL + 事务 + 索引”，底层却是&lt;strong&gt;四套不同的工程哲学&lt;/strong&gt;：连接用进程还是线程、表是堆还是树、MVCC 旧版本放哪、默认隔离多激进、复制怎么做多活、能不能长出扩展生态。这些差异没有绝对优劣，只有“和你的场景、团队、基础设施是否匹配”。&lt;/p&gt;
&lt;p&gt;选型的本质，不是选“最好的数据库”，而是选**“约束下最合适的数据库”**——数据规模、一致性要求、HA 形态、团队技能栈、预算，共同决定了答案。理解了这张横向对比，你就能在“为什么是它而不是另一个”这个问题上，给出有底气的回答。&lt;/p&gt;</description></item></channel></rss>