mysql profile total_【DB笔试面试360】MySQL中的profile的意义以及使用场景有哪些?

A

答案

MySQL可以使用profile分析SQL语句的性能消耗情况。例如,查询到SQL会执行多少时间,并看出CPU、内存使用量,执行过程中系统锁及表锁的花费时间等信息。

通过have_profiling参数可以查看MySQL是否支持profile,通过profiling参数可以查看当前系统profile是否开启:

查看profile是否开启:

mysql> show variables like '%profil%';

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

| Variable_name          | Value |

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

| profiling              | OFF   |         --开启SQL语句剖析功能

| profiling_history_size | 15    |         --设置保留profiling的数目,缺省为15,范围为0至100,为0时将禁用profiling

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

以下是有关profile的一些常用命令:

lset profiling = 1;  #基于会话级别开启,关闭则用set profiling = off

lshow profile cpu for query 1;  #查看CPU的消耗情况

lshow profile memory for query 1;  #查看内存消耗情况

lshow profile block io,cpu for query 1;  #查看I/O及CPU的消耗情况

可以使用如下的语句查询SQL的整体消耗百分比:

SELECT STATE,

SUM(DURATION) AS TOTAL_R,

ROUND(100 * SUM(DURATION) /

(SELECT SUM(DURATION)

FROM INFORMATION_SCHEMA.PROFILING

WHERE QUERY_ID = 1),

2) AS PCT_R,

COUNT(*) AS CALLS,

SUM(DURATION) / COUNT(*) AS "R/Call"

FROM INFORMATION_SCHEMA.PROFILING

WHERE QUERY_ID = 1

GROUP BY STATE

ORDER BY TOTAL_R DESC;

profile是一个非常量化的指标,可以根据这些量化指标来比较各项资源的消耗,有利于对SQL语句的整体把控。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值