今天继续给大家介绍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