部署仅 MySQL 数据库(无应用、无 Web 服务器,纯数据库服务),推荐配置需兼顾稳定性、I/O性能、内存容量和数据安全性。以下是分场景的务实建议(基于主流生产实践,非过度配置):
✅ 基础推荐(中小业务/测试/轻量生产)
| 项目 | 推荐配置 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 22.04 LTS 或 CentOS Stream 9 / Rocky Linux 9 | 长期支持、MySQL 官方兼容性好、社区生态成熟 |
| CPU | 4 核(≥2.5 GHz 主频) | MySQL 并发连接、查询解析、InnoDB 缓冲池管理较依赖 CPU;避免超线程过载(可关闭 HT 提升稳定性) |
| 内存 | 16 GB(最低要求)→ 推荐 32 GB | 关键!InnoDB Buffer Pool 建议设为物理内存的 50%~75%(如 32GB 内存 → innodb_buffer_pool_size = 24G),显著减少磁盘 I/O |
| 存储 | SSD(NVMe 优先),≥500 GB 可用空间 | ⚠️ 必须 SSD!HDD 会严重拖慢写入(尤其是 INSERT/UPDATE/REDO log)。NVMe 比 SATA SSD 延迟更低、IOPS 更高(推荐:Intel D3-S4510、Samsung PM893、或云盘如 AWS io2 Block Express / 阿里云 ESSD AutoPL) |
| RAID | RAID 10(硬件或 mdadm 软 RAID) | 提升读写性能 + 故障冗余;不推荐 RAID 5/6(写惩罚大,影响 MySQL 性能) |
| 网络 | 千兆网卡(万兆更佳,尤其高并发或主从同步场景) | 确保主从复制、备份传输不成为瓶颈 |
💡 示例:阿里云 ecs.g7.2xlarge(8C32G + 1TB ESSD PL1)| AWS m6i.xlarge(4C16G + 500GB gp3)| 物理机:Dell R750(4C32G + 2×960GB NVMe RAID10)
📈 中大型生产环境(日均百万级查询、TB 级数据、高可用需求)
| 项目 | 建议升级点 |
|---|---|
| 内存 | ≥64 GB(Buffer Pool ≥48G),预留足够给 OS 和 tmp_table_size/sort_buffer |
| 存储 | NVMe SSD ×4+ RAID10,或分布式块存储(如 Ceph RBD + BlueStore);启用 innodb_flush_method=O_DIRECT |
| 磁盘分区 | 分离关键路径: • /var/lib/mysql → 独立高速 SSD 分区• /var/log/mysql → 独立日志盘(降低刷日志对数据盘干扰)• tmpdir → 内存盘(tmpfs,仅限小临时表) |
| 内核优化 | 调整 vm.swappiness=1、vm.dirty_ratio=30、禁用 transparent huge pages(echo never > /sys/kernel/mm/transparent_hugepage/enabled) |
| MySQL 配置重点 |
|
⚠️ 关键避坑提醒
- ❌ 不要用 HDD 或混合盘(SSD+HDD)作为主数据盘 —— MySQL 对随机 I/O 敏感,HDD 是性能天花板。
- ❌ 避免超售内存 —— MySQL 内存使用较“刚性”,OOM Killer 杀 mysqld 是常见宕机原因。
- ❌ 不要忽略备份与监控 —— 配置
mysqldump/mydumper+xtrabackup(物理热备),搭配 Prometheus + Grafana(mysqld_exporter)。 - ✅ 强制启用 SSL/TLS(即使内网) + 最小权限账号(
CREATE USER 'app'@'%' IDENTIFIED WITH caching_sha2_password BY 'pwd'; GRANT SELECT,INSERT ON db.* TO 'app'@'%';) - ✅ 定期
OPTIMIZE TABLE(仅 MyISAM)或ALTER TABLE ... ENGINE=InnoDB;(重建碎片);InnoDB 通常无需频繁优化,但大表删除后可考虑ALTER TABLE t FORCE;
🌐 云环境特别提示(阿里云/AWS/腾讯云)
- 选择 I/O 优化型实例(如阿里云
g7、AWSm6i/r6i、腾讯云SA2) - 数据盘务必选 高 SLA 云盘(如阿里云 ESSD、AWS gp3/io2、腾讯云 CBS Premium)
- 开启 自动快照策略(每日 + 每周)+ 跨可用区备份
- 使用 云数据库X_X(如阿里云 RDS Proxy) 可选,但“仅部署 MySQL”场景建议自建以完全掌控
如你告知具体场景(例如:预计数据量?QPS?是否需要主从?是否上云?预算范围?),我可为你定制化推荐(含具体型号、参数调优脚本、一键部署 Ansible 清单等)。
需要的话,随时告诉我 👇
CLOUD云枢