• Mysql 配置优化


    Mysql 配置优化


    • 配置文件:/etc/my.conf

    参数:skip-name-resolve

    查询SQL:无

    skip-name-resolve:禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求。
    说明

    参数:thread_concurrency=数字(cpu总核x2)

    查询SQL:show variables like 'thread_concurrency';

    thread_concurrency的值的正确与否, 对mysql的性能影响很大, 在多个cpu(或多核)的情况下,错误设置了thread_concurrency的值, 会导致mysql不能充分利用多cpu(或多核), 出现同一时刻只能一个cpu(或核)在工作的情况。
    thread_concurrency应设为CPU核数的2倍. 比如有一个双核的CPU, 那thread_concurrency  的应该为4; 2个双核的cpu, thread_concurrency的值应为8.
    说明

    参数:max_user_connections=0(默认0)

    查询SQL:show variables like 'max_user_connections';

    max_user_connections是指每个数据库用户的最大连接
    针对某一个账号的所有客户端并行连接到MYSQL服务的最大并行连接数。
    简单说是指同一个账号能够同时连接到mysql服务的最大连接数。
    设置为0表示不限制。
    目前默认值为:0不受限制。
    
    Max_used_connections:它是指从这次mysql服务启动到现在,同一时刻并行连接数的最大值。它不是指当前的连接情况,而是一个比较值。
    如果在过去某一个时刻,MYSQL服务同时有1000个请求连接过来,而之后再也没有出现这么大的并发请求时,则Max_used_connections=1000.请注意与show variables 里的max_user_connections的区别。默认为0表示无限大。
    说明

    参数:back_log=300[(默认50)(每个连接默认256kb)(根据请求数与内存大小调试)]

    查询SQL:show variables like 'back_log';

    back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。也就是说,如果MySql的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。
    
    将会报:unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时.
    
    back_log值不能超过TCP/IP连接的侦听队列的大小。
    若超过则无效,查看当前系统的TCP/IP连接的侦听队列的大小命令:cat /proc/sys/net/ipv4/tcp_max_syn_backlog目前系统为1024。
    说明

    参数:wait_timeout=1800[(默认30分钟)(单位秒)(根据连接数据库空闲时长调试)]

    查询SQL:show variables like 'wait_timeout'

    wait-timeout:MySQL客户端的数据库连接闲置最大时间值。
    当你的MySQL连接闲置超过一定时间后将会被强行关闭。
    
    在网站有大量的MySQL链接请求(每个MySQL连接都是要内存资源开销的 ),由于你的程序的原因有大量的连接请求空闲啥事也不干,白白占用内存资源,或者导致MySQL超过最大连接数从来无法新建连接导致“Too many connections”的错误。
    
    在设置之前你可以查看一下你的MYSQL的状态(可用show processlist),如果经常发现MYSQL中有大量的Sleep进程,则需要 修改wait-timeout值了。
    说明

    参数:max_connections=2000[(默认151)(每个连接默认256k)(根据并发量与内存大小调试)]

    查询SQL:show variables like 'max_connections';

    max_connections是指MySql的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySql会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。
    
    MySQL服务器允许的最大连接数16384;
    说明

    参数: skip-networking[(默认关闭)(根据安全角度可以开启,建议关闭)]

    查询SQL:无

    开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!
    说明

    • Mysql缓存优化
    • 参考地址:https://www.cnblogs.com/gxiaoyang/p/13154175.html
  • 相关阅读:
    joson返回数据库的时间格式在前台用js转换
    网站图片不存在,显示默认图片解决办法
    最常用的截取函数有left,right,substring
    Fortran 基础语法(一)
    SQL Server2008附加数据库之后显示为只读时解决方法
    table 控制单双行颜色以及鼠标hover颜色 table光棒
    select change下拉框改变事件 设置选定项,禁用select
    “如何稀释scroll事件”引出的问题
    自给自足:动手打造html5俄罗斯方块
    一个可以拓展的垂直多级导航栏 Demo
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/14434632.html
Copyright © 2020-2023  润新知