MySQL优化详解(三)——MySQL慢查询与内参数优化

今天继续给大家介绍MySQL的相关知识,本文主要内容是MySQL慢查询和内参数优化。

一、MySQL状态信息查看

1、查看警告信息
当MySQL语句执行错误时,就会产生警告信息,我们可以通过查看这些警告信息来排查系统执行过程中出现的错误,查看井盖信息的SQL命令为:

show warnings;

执行结果如下:
在这里插入图片描述
2、查看MySQL进程信息
每次登录MySQL数据库,我们都会产生一次登录记录,执行命令:

show processlist;

可以查看当前登录数据库以及进行的操作,结果如下所示:
在这里插入图片描述

二、MySQL慢查询

MySQL慢查询是指在MySQL数据库在运行过程中,有些select查询,可能所用时间较长,我们把这样的查询称为慢查询。显然,这样的查询是存在问题的,或者是索引的问题,或者是数据和表格的问题。MySQL慢查询可以帮助我们记录这些查询,以便我们在运维时有针对性的对这些select查询进行优化。要开启MySQL慢查询,可以在my.cnf配置文件的[mysqld]模块中,添加如下内容:

slow_query_log=1
slow_query_log_file=/var/lib/mysql/slow_query.log
long_query_time=5
log-queries-not-using-indexes=1

slow_query_log表示开启慢查询功能;slow_query_log_file表示指明慢查询的日志文件;long_query_time表示指定当超过多长时间时被认为并记录为一次慢查询,单位默认为秒;log-queries-not-using-indexes表示记录没有使用索引的查询。当我们完成上述配置并重启后,登录MySQL,进行一次没有索引的查询,发现在我们指定的慢查询日志中,出现如下内容:
在这里插入图片描述
从图中可以看出,日志记录了慢查询的SQL语句。

三、MySQL强制资源限制

/etc/my.cnf是MySQL默认的配置文件,如果我们能够在配置文件中进行合理的设置,就提升MySQL数据库的效能,我们可以在my.cnf配置文件中,对MySQL可以使用的资源进行强制限制,主要参数如下:

max_connections=500
wait_timeout=10
max_connect_errors=10

在上述三个参数中,第一个参数表示最大链接数,即当超过500个链接同时存在时,就会禁止新建立的链接,该参数的设置可以有效的防止MySQL因资源过渡消耗而宕机的情况;第二个参数表示等待时间,单位为秒,如果web前端与数据库交互时间过长,则会极大的消耗系统资源,该参数可以设置当链接时间超过10s时,终止等待;第三个参数表示链接错误次数,表示当一个设备多次登录失败时,自动锁定该主机,并且禁止该主机之后的链接。
如果我们想清除该设置,可以执行命令:

flush hosts;

这样,这些被禁止主机的记录就会被清空了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值