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 -a查看目录的各位限制,可以修改/etc/security/limits.conf文件,增加以下内容以修改打开文件数量的限制:

* soft nofile 65535
* hard nofile 65535

除此之外最好在MySQL服务器上关闭iptables,selinux等防火墙软件。

二、MySQL配置文件

MySQL可以通过启动时指定配置参数和使用配置文件两种方法进行配置,在多数情况下配置文件位于/etc/my.cnf或是/etc/mysql/my.cnf。在Windows系统中可能位于C:/windows/my.ini文件。MySQL查找配置文件的顺序可以通过以下方法获得:

$ /usr/sbin/mysqld --verbose --help | grep -A 1 'Default options'

注意:如果存在多个位置存在配置文件,则后面的会覆盖前面的。

MySQL常用参数说明:
innodb_buffer_pool_size: 用于配置Innodb的缓冲池,如果数据库中只有Innodb表,则推荐配置为总内存的75%。
innodb_buffer_pool_instances: 可以控制缓冲池的个数,默认情况下只有一个缓冲池。
innodb_log_buffer_size:innodb log缓冲的大小,由于日志最长每秒钟就会刷新,所以一般不用太大。
innodb_flush_log_at_trx_commit:关键参数,对innodb的IO效率影响很大。默认为1,每次提交都会把变更刷新到磁盘,安全性最高。还有0是每次提交不刷新,而是每一秒中刷新一次到磁盘。2是每次提交到缓冲区,然后每秒刷新缓冲区到磁盘,一般建议为2,只丢失一秒数据。
innodb_read_io_threads innodb_write_io_threads:两个参数决定了Innodb读写的IO进程数,默认为4.
innodb_file_per_table:关键参数,控制Innodb每个表使用独立的表空间,可设置为ON。默认是OFF,也就是所有表都会建立在共享表空间中,只有一个文件,在并发读写的时候效率大大降低。还有共享表空间无法收缩,如果删除某一表,原占有的空间还存在。
innodb_stats_on_metadata:决定了MySQL在什么情况下会刷新innodb表的统计信息。设为OFF,等需要的时候才进行刷新。

第三方配置工具:Percon Configuration Wizard : https://tools.percona.com/wizard
填写相关的系统信息以及MySQL的使用情况,会自动生成一份建议的配置文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值