mysql连接参数配置

 2023-09-15 阅读 30 评论 0

摘要:前言 mysql性能优化涉及到很多方面,在上一篇中通过explain打印出sql的执行计划可以作为指导开发人员进行sql优化是一个方面,另外,mysql自身的参数配置也很多,比如连接参数(connection),查询缓存等,合理的设置mysql参数对于性能优化

前言

mysql性能优化涉及到很多方面,在上一篇中通过explain打印出sql的执行计划可以作为指导开发人员进行sql优化是一个方面,另外,mysql自身的参数配置也很多,比如连接参数(connection),查询缓存等,合理的设置mysql参数对于性能优化也是非常重要的

下面对mysql的连接参数,即connection相关的参数配置做简单的说明

mysql参数设置的两种方式

hadoop采用什么架构、在实际配置mysql参数时,通常有2种做法,可以通过my.cnf(linux)进行设置(持久化设置),也可以通过命令,set global 参数名 = 参数值(只对当前连接会话生效)的方式设置

查看当前mysql的connection信息

show VARIABLES like '%connection%';

在这里插入图片描述

默认情况下,mysql的连接数量为151个,通过set的方式设置下,

set GLOBAL MAX_CONNECTIONS=200;

hadoop实时查询数据,在这里插入图片描述
如果在my.cnf进行设置
在这里插入图片描述
配置完毕后,重启下mysql服务,connections连接数也变成300

systemctl restart mysqld.service

在这里插入图片描述

总结来说:

  • 对当前的连接,连接数优先级为 ,set > 配置,值得注意的是,部分参数在set global并不会立即生效,而是需要重新建立连接后才有效
  • set global 在mysql运行过程中会一直生效,直到mysql服务关闭

connection常用参数设置

  • 连接mysql的客户端?查看最大连接数

    最大连接数,代表当前数据库同时允许的最大连接数量,连接的状态通常有2种,sleep / query,sleep代表处于闲置的状态,query代表正处于任务处理的状态

    sleep + query 连接的总量不能超过 max_connections的设置值,否则会出现 : too many connections 的错误
    在这里插入图片描述

  • 查看各个状态的连接情况
    在这里插入图片描述

  • 数据库配置参数。Threads_cached:一共缓存过多少连接,如果在mysql服务器的配置文件中设置了thread_cache_size参数,当前客户端断开之后,服务器处理此客户的线程将会缓存起来,以备下一个连接进来的客户而不是立即销毁(前提是缓存数量未达到上限),可以通过命令:set global thread_cache_size=50 设置或者在 my.cnf中配置

  • Threads_connected: 代表当前已经有多少个连接(sleep+query)

  • Threads_created:历史总共创建过多少个连接

  • Threads_running:代表有几个连接正处于"工作"状态,也是目前的并发数

mysql默认监听的端口是?查看mysql历史运行过程中最大连接数以及出现的时点

在这里插入图片描述
这是一个很有用的参数,可以用于指导一个系统的数据库服务器配置比较合理的最大连接数,因为最大连接数并不是越大越好,可以在系统上线时将 max_connections的值设置的大一点,等到运行一段时间之后,通过观察上面的这个参数值,再进行设置,这也是指导DBA或者开发人员对于mysql服务器是否需要进行扩容或者增加节点的一个很重要的衡量参数

查看mysql设置的连接缓存队列数
在这里插入图片描述
back_log:设置保存多少个连接数据库的请求到堆栈(缓冲区),就是说,如果mysql的当前连接数达到了max_connections的最大值时,新来的请求将会被保存在堆栈中,以等待前面的某些连接资源释放,该堆栈的数量即 back_log,如果等待连接的数量超过了back_log,将不会授予连接资源,报出相关的连接错误,back_log可以简单理解为一个连接的缓冲队列

如果了解Java中的线程池原理的同学就很好理解这个概念了,这个可以作为线程池调优参数的配置,在mysql中,也可以作为mysql服务器性能调优的指导,假如你的服务器配置还可以的话,可以适当的调大这个参数,以获得更大的并发处理

mysql连接配置,wait_timeout 与 interactive_timeout

在这里插入图片描述
这两个参数都是连接在超过一段时间之后,数据库自动关闭,在这个期间持续的时间,默认是8个小时

wait_timeout :针对非交互式连接,比如Java通过JDBC进行连接
interactive_timeout:交互式连接,比如通过mysql的客户端进行的连接

查看当前数据库连接详情状况
在这里插入图片描述
通过这个命令可以清楚的展现出当前数据库连接的详细情况,比如query对应的应用IP,sleep对应的连接客户端信息、连接时间等,可以在某些情况下用于监控mysql的整体连接情况

优化mysql性能的参数。本篇主要总结了与mysql的connection相关的几个常用配置参数的使用,在实际开发中,可以作为运维或者调优的配置进行参考和使用,本篇到此结束,最后感谢观看!

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/62808.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息