Home >Database >Mysql Tutorial >如何使用SQL Profiler 性能分析器_MySQL

如何使用SQL Profiler 性能分析器_MySQL

WBOY
WBOYOriginal
2016-06-01 14:02:40897browse

    mysql 的 sql 性能分析器主要用途是显示 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;

    +----------+------------+-------------------------------------------------+

    | Query_ID | Duration | Query |

    +----------+------------+-------------------------------------------------+

    | 26 | 0.10213775 | create table t_engines select * from t_engines1 |

    | 27 | 0.00032775 | select count(*) from t_engines |

    | 28 | 0.00003850 | select count(*) from t_engines |

    +----------+------------+-------------------------------------------------+

    15 rows in set (0.01 sec)

    mysql> SHOW PROFILE FOR QUERY 27;

    +--------------------------------+------------+

    | Status | Duration |

    +--------------------------------+------------+

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn