在CentOS环境中优化数据库性能是一个涉及多个方面的过程,以下是一些关键的优化策略:
/etc/sysctl.conf
文件,增加以下配置:vm.swappiness = 10 fs.file-max = 100000 net.core.somaxconn = 1024 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1
应用修改:sudo sysctl -p
/etc/security/limits.conf
文件,设置 MySQL 的文件描述符限制:mysql soft nofile 65535 mysql hard nofile 65535
确保 MySQL 启动脚本或 systemd 中也包含:LimitNOFILE 65535
/etc/my.cnf
文件,根据服务器内存和业务量调整以下参数:[mysqld] max_connections = 200 query_cache_type = 0 query_cache_size = 0 innodb_buffer_pool_size = 2G # 通常为物理内存的 50%-80% innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2 innodb_file_per_table = 1 tmp_table_size = 64M max_heap_table_size = 64M slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 1
mysqltuner
工具分析慢查询日志。SELECT id, name FROM users;
SELECT * FROM table WHERE id > 100000 LIMIT 10;
mysql -u root -p --protocol=socket
/etc/my.cnf
文件,设置 bind-address = 127.0.0.1
,如需远程开放,则配置防火墙和用户权限限制。SHOW ENGINE INNODB STATUS;
mysqldump
定期备份数据库。SHOW STATUS LIKE 'Threads_connected';
和 SHOW GLOBAL STATUS LIKE 'Uptime';
通过上述方法,可以显著提升 CentOS 环境下数据库的性能和稳定性。需要注意的是,不同的应用场景可能需要不同的优化策略,因此在进行优化时,建议根据具体情况进行调整。