加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

如何使用MySQL用户表

发布时间:2023-10-17 13:03:40 所属栏目:MySql教程 来源:
导读:这篇文章将为大家详细讲解有关Mysql profile怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何通过profile来发现语句的开销构造场景:开启一个回话,执行语句lock tab

这篇文章将为大家详细讲解有关Mysql profile怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

如何通过profile来发现语句的开销

构造场景:

开启一个回话,执行语句

lock table film_text read;

开启另外一个回话,执行下面语句:

root@sakila 07:51:14>show variables like '%profil%';

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

| Variable_name     | Value |

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

| have_profiling    | YES |

| profiling       | OFF |

| profiling_history_size | 15  |

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

3 rows in set (0.01 sec)

root@sakila 07:52:38>set profiling=1;

Query OK, 0 rows affected, 1 warning (0.00 sec)

root@sakila 07:52:45>update film_text set title='test' where film_id=1003;

Query OK, 0 rows affected (11.02 sec)

Rows matched: 1 Changed: 0 Warnings: 0

root@sakila 07:53:18>show profiles;

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

| Query_ID | Duration  | Query                        |

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

|    1 | 11.02395150 | update film_text set title='test' where film_id=1003 |

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

1 row in set, 1 warning (0.01 sec)

root@sakila 07:53:26>show profile for query 1;

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

| Status           | Duration |

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

| starting          | 0.000793 |

| checking permissions    | 0.000032 |

| Opening tables       | 0.000087 |

| init            | 0.000026 |

| System lock         | 0.000025 |

| Waiting for table level lock | 11.018648 |

| System lock         | 0.000770 |

| updating          | 0.002947 |

| end             | 0.000077 |

| query end          | 0.000069 |

| closing tables       | 0.000062 |

| freeing items        | 0.000253 |

| cleaning up         | 0.000163 |

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

13 rows in set, 1 warning (0.00 sec)

可以看到开销是在这个waiting table lock.

貌似 show profiles 只能显示本回话执行的sql语句的情况,即使设置了global profiling=1

所以如果要调优一组sql, 那么把这一组sql放到一个回话中执行,然后执行show profiles 查看每条语句的执行时间,并且进一步分析开销在什么地方。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章