MySql提高性能方法

短连接
短连接模型存在一个风险,就是一旦数据库处理的慢一些,连接数就会暴涨。max_connections参数,用来控制一个MYSQL实例同时存在的连接数的上限,超过这个值,系统就会拒绝接下来的来连接请求,并报错提示“Too many connections”。对于被拒绝连接的请求来说,从业务角度看就是数据库不可用。
调高max_connections的值,有可能导致已经连接的线程拿不到CPU资源去执行业务的SQL请求。

第一种方法:先处理掉那些占用连接但是不工作的线程。
max_connections的计算,不是看谁再running,是只要连着就占用一个计数位置。对于那些不需要保持的连接,我们可以通过kill connection + 线程id 主动踢掉。这个行为跟事先设置wait——timeout的效果是一样的。设置wait——timeout参数表示的是,一个线程空闲wait——timeout这么多秒之后,就会被MYSQL直接断开连接。

第二种方法:减少连接过程的消耗。
有的业务代码会在短时间内先大量申请数据库连接做备用,如果现在数据库确认是被连接行为打挂了,那么一种可能的做法,是让数据库跳过权限验证阶段。
跳过权限验证的方式是:重启数据库,并使用-skip-grant-tables参数启动。这样,整个MYSQL会跳过所有的权限验证阶段,包括连接过程和语句执行过程在内(风险极高)。
在MySQL 8.0版本里,如果你启用-skip-grant-tables参数,MySQL会默认把–skip-networking参数打开,表示这时候数据库只能被本地的客户端连接。可见,MySQL官方对-skip-grant-tables参数的安全问题也很重视。

慢查询性能问题
MySQL中会引发性能问题的慢查询大体有三种可能:
1.索引没有设计好;
2.SQL语句没写好;
3.MySQL选错了索引。

原文:https://blog.csdn.net/weixin_43770941/article/details/94736103

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值