mysql慢查询排查处理

1.mysql优化的目的

            事务阻塞,慢查询

2.mysql优化的方向

             sql及索引优化。 

             数据库表结构,根据数据设计查询最优的表结构。

            系统配置优化,对打开文件数和安全的限制。 

            硬件,选择最适合数据库的cpu,更快的IO,更大的内存,cpu不是越多越好, IO并不能减少锁的机制,也就是不能减少阻塞,所以说硬件的优化成本越高,效果最差。

3.mysql慢查询日志的开启

          slow_query_log           

          show_query_log_file:慢查日志存储位置

                  set global slow_query_log_file="D:/Program Files/mysql-5.6.44-winx64/loglocalhost-slow.log";

           log_queries_not_use_indexes:是否把没有使用索引的查询记录在文件中

           long_query_time:超过多少秒的查询记录下来

#开启慢查询日志记录
mysql> set global slow_query_log=on;
Query OK, 0 rows affected (0.00 sec)


#查询时间超过0.1秒的sql语句会被记录
mysql> set global long_query_time=0.1;
Query OK, 0 rows affected (0.03 sec)


#记录慢查询日志的文件地址
mysql> set global slow_query_log_file="/var/lib/mysql/localhost-slow.log";
Query OK, 0 rows affected (0.04 sec)


#记录没有使用索引的查询
mysql> set global log_queries_not_using_indexes=on;
Query OK, 0 rows affected (0.00 sec)
 

show variables like 'slow_query_log';

show variables like 'long_query_time';

show variables like 'slow_query_log_file';

show variables like 'log_queries_not_using_indexes';

4.mysql慢查询日志存储格式

          1.mysqldumpslow(mysql官方自带的,安装的时候就带有)

          2.mysqldumpslow -t 3 /home/mysql/data/mysql-slow.log  | more(输出排名前三的查询慢的日志)

          3.-s (可以规定慢查询日志以什么方式排序展示)

# Time: 190617 11:07:00
# User@Host: root[root] @ localhost [::1]  Id:    25
# Query_time: 0.001000  Lock_time: 0.001000 Rows_sent: 7  Rows_examined: 17
SET timestamp=1560740820;
SELECT a.name,a.subject,b.children from teachers a left join father b on a.name=b.name
   union
   select b.name,a.subject,b.children from teachers a right join father b on a.name=b.name;

4.mysql自带命令mysqldumpslow分析慢查询

mysqldumpslow是perl命令,需要搭建对应的环境后才能运行

perl环境搭建:https://www.runoob.com/perl/perl-environment.html

mysqldumpslow -t 3 D:\Program Files\mysql-5.6.44-winx64\loglocalhost-slow.log | more

详细使用:https://www.cnblogs.com/bean-sprout/p/7590766.html

 

5.pt-query-digest使用

详细使用:http://www.php.cn/mysql-tutorials-357655.html

下载地址:wget http://www.percona.com/downloads/percona-toolkit/2.2.4/percona-toolkit-2.2.4.tar.gz

 

 

关注点

 

6.explain分析单一sql的执行效率

各列参数含义:https://www.jianshu.com/p/8fab76bbf448

const:一般是主键,唯一索引之类的常数查找;eq_reg范围查找

 

 

 

https://blog.csdn.net/johnstrive/article/details/46437547

演示

下载演示数据库网址:https://dev.mysql.com/doc/index-other.html

查看数据库表结构网址:https://dev.mysql.com/doc/sakila/en/sakila-installation.html

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值