MySQL 基於 GNU Autoconf/Automake 構建,核心依賴:
這使得 MySQL 理論上可移植到**所有符合 POSIX 線程標準的現代作業系統**。
| 作業系統 | 版本/發行版 | 線程庫 | 備註 |
|---|---|---|---|
| Linux | SUSE (SLES/openSUSE)、Red Hat (RHEL/Fedora/CentOS/AlmaLinux/Rocky)、Debian/Ubuntu、Oracle Linux | NPTL (Native POSIX Thread Library) / glibc 2.3+ | **主要開發平台**,性能最優、測試最全、優化最深 |
| FreeBSD | 10.x - 14.x | libthr (1:1) / 舊版 libkse (M:N) | 官方持續測試,ZFS 組合優秀 |
| Solaris / Oracle Solaris | 10, 11.x (SPARC/x86) | 原生線程 (libthread/libpthread) | 企業級部署多,DTrace 診斷強大 |
| Windows | Server 2016/2019/2022, 10/11 (x64) | Windows 原生線程池 | 安裝包原生支持,無需 Cygwin |
| macOS | 10.15+ (Intel/Apple Silicon) | POSIX pthreads (Darwin) | 開發/測試環境常用 |
| 作業系統 | 關鍵要求/備註 |
|---|---|
| AIX | 4.3+, 5.x, 6.x, 7.x - 原生線程 |
| HP-UX | 11i v2/v3 (IA64/PA-RISC) - 原生線程 |
| OpenBSD | > 5.0 原生線程,舊版需 MIT-pthreads |
| NetBSD | 多架構支持,需 GNU Make |
| SCO OpenServer / UnixWare | 5.0.x/6.0.x/7.1.x - 特定線程庫 |
| SGI IRIX | 6.x 原生線程 |
| Tru64 UNIX / Digital UNIX | 4.x/5.x 原生線程 |
| OS/2 Warp | 3/4 特定修補包 |
| Novell NetWare | 6.0+ |
| AmigaOS | 社區移植 |
| QNX / VxWorks / LynxOS | 實時嵌入式系統,交叉編譯 |
| Android / iOS | 交叉編譯為靜態庫,嵌入式 APP 使用 |
| 因子 | 對 MySQL 影響 | 優化方向 |
|---|---|---|
| 線程庫穩定性 | 直接決定 mysqld 進程穩定性,崩潰 = 數據庫不可用 | 優先選原生 1:1 線程 (NPTL, libthr, Solaris threads) |
| SMP 縮放能力 | 線程能否跨 CPU 核心調度,決定多核利用率 | 內核調度器優化 (CFS, ULE),綁定 CPU 親和性 |
| 鎖/互斥體性能 | InnoDB 大量短時鎖操作,上下文切換開銷直接影響吞吐 | 優化 futex/umtx,避免自旋過度,innodb_spin_wait_delay 調優 |
| 文件系統穩定與性能 | 數據完整性、IO 延遲、大文件支持 | XFS/ext4/ZFS/btrfs,innodb_flush_method=O_DIRECT,RAID/SSD 調度 |
| 大文件支持 (>2GB) | 表空間、Binlog、備份文件常超 2GB | 64 位系統 + LFS (Large File Support) 編譯選項 |
| 官方測試覆蓋度 | Bug 修復速度、回歸測試、安全補丁同步 | 選 Tier 1 平台,獲得最佳 SLA |
cmake -DWITH_SSL=system -DWITH_ZLIB=system -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci -DWITH_NUMA=ONstatx、preadv2)getconf GNU_LIBPTHREAD_VERSION → NPTL 2.34 為佳echo 2048 > /proc/sys/vm/nr_hugepages,MySQL large_pages=ON,減少 TLB Missubuntu:22.04 或 oraclelinux:9 基鏡像,--cap-add=SYS_RESOURCE 調整資源限制MySQL 的跨平台能力源於 GNU Autotools + POSIX 線程抽象。但**「能跑」不等於「跑得好」**。生產環境選型核心看三點:**線程庫成熟度 (NPTL/libthr) > 文件系統穩定性 (XFS/ZFS) > 官方測試投入度 (Tier 1 平台)**。現代雲原生背景下,**Linux x86_64/ARM64 (RHEL 系/Ubuntu LTS) 佔據 95%+ 份額**,成為事實標準。嵌入式/邊緣場景下,交叉編譯精簡版 MySQL (僅嵌入式服務器 libmysqld) 運行於 ARM Cortex-A/R、RISC-V、x86 實時內核之上,開啟物聯網數據庫新邊疆。