设为首页 加入收藏

TOP

MySQL的配置优化(一)
2017-03-30 14:17:27 】 浏览:407
Tags:MySQL 配置 优化

需求:MySQL的参数优化对于不同的网站,极其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次万次,需要在工作当中不断的监控观察和调试,才能得到最佳的效果。性能优化影响最大的变量分为连接请求变量和缓冲区变量。


理论总结:


        修改vim/my.cnf


        max_connections = 1024    设置最大连接数为1024


        back_log = 100      暂存的连接数量 


        wait_timeout = 100


        interactive_timeout = 100 修改interactive的值


        key_bugger_size =268435456和key_buffer_size=256M   调整


        query_cache_size = 256M    缓存大小


        query_cache_type = 1    缓冲类型


        max_connect_errors = 20    开启安全有关的计数器,host连接请求多余20禁止连接请求


        sort_buffer_size = 2M     为进行排序的线程分配该大小的一个缓冲区


连接请求变量


    max_connections。如果服务器的并发连接请求量大,此值应相应调高。增加并行连接量是建立服务器能支撑的情况下,连接数越多,则mysql为内个连接提供连接缓冲区开销的内存越大,所以应适当调整该值。数值过小会经常出现错误ERROR 1040:Too many connections错误。


            show status like 'connections';通配符查看当前连接数量,无论是否成功都会记录。


            show variables like '%max_connections%'    最大连接数


            show status like '%max_used_connections'    响应连接数


            show variables like ’%wait_timeout%’    查看wait_timeout


            show variables like '%interactive_timeout%'   查看interactive


            show status like 'qcache%';    可以指定query_cache_size设置是否合理


            show variables like 'query_cache%';    验证query_cache配置是否开启


            max_used_connections跟max_connections相同那么就是max_connections设置过低或超过服务器负载上限,地狱10%则设置过大。


    暂存的连接数据:back_log。主要mysql线程在一个短时间内得到很多请求就会起作用。连接数值达到max_connections时,新来的请求将被存在堆栈中,等待某一连接释放资源。等待连接数量超过back_log则不被授予连接资源。back_log暂时停止回答新请求之前的短时间内有多少个请求可以被存在堆栈中。如果希望在短时间很多连接,需要增加back_log值。


                查看主机进程表:show variables processlist


                查看back_log的值:show variables like 'back_log'


                如果主机进程表中大量的待连接进程时,要加大max_connections的值。


     mysql关闭一个非交互的连接之前索要等待的秒数wait_timeout和interactive_timeout


            wait_timeout指mysql在关闭一个非交互的连接之前所要等待的秒数


            interactive_timeout指的是mysql在关闭一个交互的连接之前索要等待的秒数,就比如我们在终端上进入mysql管理,使用的即是交互式连接,如果操作时间超过了interactive_timeout设置的值,就会自动断开。


         对性能的影响 


            如果设置大小,连接关闭很快,使一些持久的连接不起作用


            如果设置太大,造成连接打开时间过长,如果执行show processlist能看到太多的sleep状态的连接,造成too many connections错误


            一般希望wait_timeout的值尽可能的低。interactive的设置对web application没有多大的影响


缓冲区变量


    全局缓冲


    指定索引缓冲区的大小,决定索引处理的速度,尤其是索引读的速度。


        状态值:key_read_requests和key_reads


                create_tmp_disk_tables


        key_reads/k

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL主从复制的一些心得体会 下一篇mysqldump备份结合binlog日志恢复

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目