mysql从5.0.37起,提供了profile的功用,对功用调试极端有用. profile的功用首要用途是显示 sql 执行的整个流程中各项资源的运用情况。剖析器可以更好的展现出不良 SQL 的功用疑问所在。
下面咱们举例简介一下 MySQL SQL Profiler 的运用方法:
最先,开启 MySQL SQL Profiler
mysql> SELECT @@profiling;
+————-+
@@profiling
+————-+
0
+————-+
1 row in set (0.00 sec)
mysql> SET profiling = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@profiling;
+————-+
@@profiling
+————-+
1
+————-+
1 row in set (0.00 sec)
默许情况下 profiling 的值为 0 表示 MySQL SQL Profiler 处于 OFF 形态,开启 SQL 功用剖析器后 profiling 的值为 1.
议决 sql 功用剖析器,咱们来比拟一下 下列语句前后 2 次执行流程的差异,对咱们明白 sql 的细致执行流程是十分有协助的。
mysql> create table t_engines select * from t_engines1;
Query OK, 57344 rows affected (0.10 sec)
Records: 57344 Duplicates: 0 Warnings: 0
mysql> select count(*) from t_engines;
+———-+
count(*)
+———-+
57344
+———-+
1 row in set (0.00 sec)
mysql> select count(*) from t_engines;
+———-+
count(*)
+———-+
57344
+———-+
1 row in set (0.00 sec)
mysql> SHOW PROFILES;
+———-+————+————————————————-+