美文网首页
MySql 系统配置优化

MySql 系统配置优化

作者: zshanjun | 来源:发表于2017-03-13 18:08 被阅读74次

    操作系统配置优化

    网络方面的配置,要修改/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查找配置文件的顺序可以通过以下方法获得/usr/sbin/mysqld --verbose --help | grep -A 1 'Default options'

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

    常用参数说明:

    innodb_buffer_pool_size:非常重要的一个参数,用于配置innodb的缓冲池,如果数据库中只有innodb表,则推荐配置量为总内存的75%

    innodb_buffer_pool_instances:可以控制缓冲池的个数,默认情况下只有一个缓冲池

    innodb_log_buffer_size:innoddb log缓冲的大小,由于日志最长每秒钟就会刷新所以一般不用太大

    innodb_flush_log_at_trx_commit:关键参数(决定了数据多久将变更刷新到磁盘,1:每次提交都刷新 0:每一秒将日志刷新到磁盘 2:每次提交刷新到缓冲区,每一秒将缓冲区刷新到磁盘),对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,也就是所有的表都会建立在共享表空间中。导致并发写入的时候效率很低,共享空间里面是无法单独收缩的,如果删除一个很大的表,这时候是无法实现单独收缩的,只能讲所有表导出来后再导入进去,才能实现对共享空间进行收缩。

    innodb_stats_on_metadata:决定了MySQL在什么情况下会刷新innodb表的统计信息(优化器如何使用表的索引是需要借助一些统计信息的)

    第三方配置工具

    percona configuration wizard: https://tools.percona.com/wizard


    参考网站:

    相关文章

      网友评论

          本文标题:MySql 系统配置优化

          本文链接:https://www.haomeiwen.com/subject/whdqnttx.html