mysql慢日志查询 (2)

1、查看原本的sql语句执行结构:

mysql> explain select * from city where Name=\'Salala\'\G; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: city partitions: NULL type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 4188 filtered: 10.00 Extra: Using where 1 row in set, 1 warning (0.00 sec)

可以看出来,该sql语句是进行了全盘扫描。我们可以使用索引对其进行简单的优化一下。

2、创建索引

mysql> create index idx_cityName on city(`Name`); Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0

3、使用explain分析一波

mysql> explain select * from city where Name=\'Salala\'\G; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: city partitions: NULL type: ref possible_keys: idx_cityName key: idx_cityName key_len: 35 ref: const rows: 1 filtered: 100.00 Extra: NULL 1 row in set, 1 warning (0.01 sec)

通过创建索引,我们发现此时只扫描了一行,并且是使用的索引扫描,因此大大提高了一个mysql查询的效率。

mysql慢查询使用总结

在平常的开发中,慢查询作为MySQL优化的一个途径,是非常有用的。它会记录下我们一些查询时间长的sql语句,对其语句我们进行分析,从而达到sql查询语句的最优化。但是慢日志查询开启之后,针对sql查询会通过磁盘I/O将相关的记录写入到磁盘文件中,增加了一个磁盘的I/O读写。因此,我们该功能用在开发、测试环境上,而不用在生产环境中去。

慢日志查询工具

由于慢日志查询文件越到后期,内容越多。我们对其分析的压力越大,因此我们需要借助某些工具实现快速分析。这些工具还没完全使用熟悉,后期单独写一篇文章介绍该类型的工具,这里只是罗列一下工具名称。
1.mysqldumpslow
2.pt-query-digest
3.mysqltop(天兔Lepus)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwygf.html