网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

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选错了索引。

评论 0

暂无评论
0
0
0
立即
投稿
发表
评论
返回
顶部