Ubuntu LNMP 环境下 MySQL 优化实操指南
一 基线评估与监控
sudo systemctl restart mysql 使配置生效。mysql_secure_installation 完成基础加固;定期执行 ANALYZE/OPTIMIZE TABLE 维护统计信息与碎片。二 InnoDB 与基础配置优化
innodb_buffer_pool_size:建议为物理内存的 50%–70%(16GB 可用 8–12G),用于缓存数据与索引,是 InnoDB 最重要的性能项。innodb_log_file_size:建议 256M,增大可提升批量写入与恢复性能(变更需按步骤替换日志文件)。innodb_flush_log_at_trx_commit:安全性优先设为 1;在可容忍秒级丢失的场景可设为 2 提升吞吐。max_connections:结合业务峰值与连接占用内存谨慎设置,避免过大导致内存争用。[mysqld] 段):[mysqld]
innodb_buffer_pool_size = 8G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
max_connections = 300
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
innodb_log_file_size 需先停库、备份、移走旧日志、改配置、启动;其他参数多数动态生效或需重启。三 查询与索引优化
四 系统层与存储优化
vm.swappiness(如 0–10),设置 vm.dirty_background_ratio 与 vm.dirty_ratio 以平滑刷盘,避免抖动。innodb_flush_method=O_DIRECT 减少双缓冲。五 维护与扩展策略