Mysql 数据库优化配置
操作系统配置优化
数据库是基于操作系统的,由于mysql安装在linux上,所以对于操作系统的一些参数配置也会影响到mysql性能
网络方面配置,修改/etc/sysctl.conf文件
#增加tcp支持的队列数
net.ipv4.tcp_max_syn_backlog = 65535
#减少断开连接时,资源回收
net.ipv4.tcp_max_tw_buckets = 8000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle =1
net.ipv4.tcp_fin_timeout = 10
打开文件数限制,可以使用 ulimit �Ca 查看目录的各位现在,修改/etc/security/limits.conf文件,增加或者修改一下内容。
soft nofile 65535
hard nofile 65535
如果没有必要,关闭iptables,selinux等防火墙软件
Mysql配置文件优化
获取mysql配置文件
Mysqld �Cverbose �Chelp |grep �CA 1 ‘Default option’
如果存在多个配置文件,后面会覆盖前面的
Innodb_buffer_pool_size = 300M
#############################################
innodb 缓存池,一般配置为总内存的75%
获取数据库中数据大小
select ENGINE,
ROUND(sum(data_length + index_length)/1024/1024,1) as "total mb"
from information_schema.TABLES where table_schema not in ("information_schema","performance_schema")
group by engine;
innodb_buffer_pool_size >=Totabl MB
################################################
Innodb_buffer_pool_instances = 4
#缓冲池个数,默认是1,可以设置成4或者8
innodb_log_buffer_size = 16M
#innodb 日志缓存大小,不用设置太大
innodb_flush_log_at_trx_commit = 2
# 对innodb IO影响很大,建议设置成2,如果需要数据安全性较高,可以设置成默认值1
Innodb_read_io_threads = 8
Innodb_write_io_threads = 8
#innodb IO进程数,根据cpu核数确定
Innodb_file_per_table = 2
#每一个表使用一个表空间
Innodb_stats_on_metadata = OFF
#决定了在什么情况下刷新innodb表统计信息