MySQL慢日志实践 (2)

1.先查看原本的sql语句执行结构

mysql> explain select * from city where city=\'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: 600 filtered: 10.00 Extra: Using where 1 row in set, 1 warning (0.00 sec) mysql> create index idx_cityName on city(`city`); Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0

看得出,该sql语句是进行了全盘扫描。我们则用索引对其简单的优化一下。
2.创建索引

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

3.在用explain分析一次

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

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

MySQL慢查询使用总结

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

慢日志查询工具

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

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

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