mysql数据库优化之系统配置优化及硬件优化
系统的优化分操作系统和mysql服务器数据库是基于操作系统的,目前大多数mysql都是安装在linux系统上,所以对于操作系统的一些参数配置也会有影响到mysql的性能,下面就是列出一些常用的系统配置。网络方面的配置,要修改/etc/sysctl.conf文件增加tcp支持的队列数net.ipv4.tcp_max_syn_backlog=65535减少断开连接时,资源回收,加快
系统的优化分操作系统和mysql服务器
数据库是基于操作系统的,目前大多数mysql都是安装在linux系统上,所以对于操作系统的一些参数配置也会有影响到mysql的性能,下面就是列出一些常用的系统配置。
网络方面的配置,要修改/etc/sysctl.conf文件
增加tcp支持的队列数
net.ipv4.tcp_max_syn_backlog=65535
减少断开连接时,资源回收,加快timewait 的时间,
net.ipv4.tcp_max_tw_buckets=8000
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tco_fin_timeout=10
打开文件数的限制,可以使用ulimit -a 查看目录的各位限制,可以修改/etc/security/limits.conf 文件,增加以下内容以修改打开文件数量的限制
*soft nofile 65535
*hard nofile 65535
除此之外最好在mysql服务器上关闭iptables ,selinux 等防火墙软件
mysql本身的一些优化
mysql配置文件的使用, /etc/my.cnf /etc/mysql/my.cnf
注意 如果存在多个位置存在配置文件,则后面配置的内容会覆盖前面的内容,后面的生效,前面的会失效。
配置参数常用的 ,
innodb_buffer_pool_size ,非常重要的参数,用于配置innodb缓冲池的大小,如果数据库中只有innodb表,则推荐配置量为总内存的75%
innodb_buffer_pool_instances 5.5以后版本引进的,可以控制缓冲池的个数,增加个数可以增加并发性,
innodb_log_buffer_size innodb log 缓冲的大小,由于日志最长每秒中就会刷新所以一般不用太da。
innodb_flush_log_at_trx_commit 关键参数决定了数据库多长时间把变更刷新到磁盘,参数有三种值,对innodb的io效率影响很大,默认值为1, 可以取0,1,2三个值,一般建议为2 ,但如果数据安全性比较高则使用默认值1
innodb_read_io_threads
innodb_write_io_threads 以上两个参数决定了innodb读写的io进程数,默认为4
innodb_file_per_table 关键参数,控制innodb每一个表使用独立的表空间,默认为off,也就是所有的表都会建立在共享表空间中,建议改为on ,使用独立的表空间,
innodb _stats_on_metadata 决定了mysql在什么情况下会刷新innodb表的统计信息,在show table时 会刷新表统计信息, 建议设置为off 这样就不会show table 刷新表统计信息。
第三方配置工具
percon configuration wizard
https://tools.percona.com/wizard
服务器硬件优化
如何选择cpu 单核更快的cpu 还是多核cpu,sql的执行是只能用到一个cpu ,不能并发用到多个cpu
。基于这些特点考虑用单核更快的cpu,
Disk io 优化 常用raid 级别,
也可以用ssd卡 或者faishio
更多推荐
所有评论(0)