本指南提供针对搭载16GB和32GB内存的Ubuntu服务器优化MySQL性能的 my.cnf 配置建议。请注意,以下配置仅供参考,最佳配置需根据您的实际负载和硬件进行调整。

16GB 内存配置建议

[mysqld]

  • innodb_buffer_pool_size = 8G:将InnoDB缓冲池设置为可用内存的50%。
  • innodb_log_file_size = 1G:设置较大的日志文件大小以提高性能。
  • max_connections = 200:根据您的需求调整最大连接数。
  • thread_cache_size = 16:设置线程缓存大小以减少线程创建开销。
  • query_cache_size = 0:对于写密集型应用,建议禁用查询缓存。
  • innodb_flush_log_at_trx_commit = 2:为了获得更好的性能,可以将此值设置为2,但这会降低数据安全性。

32GB 内存配置建议

[mysqld]

  • innodb_buffer_pool_size = 16G:将InnoDB缓冲池设置为可用内存的50%。
  • innodb_log_file_size = 2G:设置较大的日志文件大小以提高性能。
  • max_connections = 300:根据您的需求调整最大连接数。
  • thread_cache_size = 32:设置线程缓存大小以减少线程创建开销。
  • query_cache_size = 0:对于写密集型应用,建议禁用查询缓存。
  • innodb_flush_log_at_trx_commit = 2:为了获得更好的性能,可以将此值设置为2,但这会降低数据安全性。

其他优化建议

  • 使用SSD硬盘以提高磁盘I/O性能。
  • 定期运行OPTIMIZE TABLE命令以优化数据库表。
  • 监控MySQL性能指标并根据需要调整配置。

请记住,以上配置建议并非万能方案,您需要根据实际情况进行测试和调整以获得最佳性能。