数据库性能的天花板在硬件

无论查询优化器多么聪明、索引设计多么精妙,一条 SQL 最终都要落到 CPU 上计算、从内存或磁盘取数据。数据库的许多”反直觉”设计,本质上都是为了顺应硬件的物理特性

┌────────────────────────────────────────────────────────┐
│                    数据库系统                            │
├────────────────────────────────────────────────────────┤
│   查询引擎 / 索引 / 事务  ← 软件层面的优化              │
├────────────────────────────────────────────────────────┤
│   CPU   │   内存(RAM)   │   SSD   │   HDD   ← 硬件特性   │
│  ~1ns   │     ~100ns    │ ~100μs  │  ~10ms  │  速度差千万倍
└────────────────────────────────────────────────────────┘

一个关键事实:越靠近 CPU 的存储越快,但越贵、容量越小。从寄存器到磁盘,延迟相差 7 个数量级:

存储层级典型延迟容量易失性
L1 Cache~1 nsKB
L2/L3 Cache~10 nsMB
主存 (DRAM)~100 nsGB
SSD (NAND)~100 μsTB
HDD (磁盘)~10 msTB+

理解硬件能解决什么

  • 为什么顺序 IO 远快于随机 IO? —— 见 机械硬盘固态硬盘
  • 为什么缓冲池能大幅提升性能? —— 因为内存比磁盘快 ~10⁵ 倍(见 内存
  • 为什么列式/向量化执行快? —— 因为 CPU 的 SIMD 与缓存行友好(见 CPU
  • 为什么 WAL 要先写日志? —— 因为顺序写 SSD/HDD 比随机写快得多

本系列内容

本系列从硬件视角拆解数据库性能的根因:

  1. CPU 工作原理:指令流水线、多级缓存、分支预测、SIMD
  2. 内存工作原理:DRAM 单元、刷新、带宽、NUMA
  3. 固态硬盘工作原理:NAND 浮栅、FTL、写放大、磨损均衡
  4. 机械硬盘工作原理:盘片、寻道、旋转延迟、IOPS

理解这些,你就能从”调参数”进阶到”从第一性原理设计存储与查询”。

参考