information_schema.profiling学习

information_schema.profiling可以用来分析每一条SQL在它执行的各个阶段的用时,注意这个表是session 级的,也就是说如果session1 开启了它;session2没有开启

这个情况下session2 去查询只会返回一个空表

1、set @@ssesion.profiling=1 可以开启information_schema.profiling相关监测

2、information_schema.profiling 表的常用列

  1、query_id              :查询id 用于标记不同的查询

  2、seq                 :一个查询内部执行的步骤

  3、state                :各个步骤的状态

  4、duration              :各个步骤持续的时间

  5、cpu_user              :用户空间的cpu 使用量

  6、cpu_system            :内核空间的cpu 使用量

  7、swaps               :swap 发生的次数

3、例子:

  1、开启监测

set @@ssesion.profiling=1;

  2、执行查询

select * from tempdb.t;

  3、关闭监测

set @@ssesion.profiling=0;

  4、查询监测到的数据

 select
    -> query_id, -- 查询id 它用于标识一个查询
    -> seq, -- 显示序号
    -> (select sum(duration) from information_schema.profiling as innert where innert.query_id = outert.query_id) as total_cost , -- 总用时in seconds
    -> state,-- 状态
    -> duration, -- 持续时间
    -> cpu_user, -- 用户空间的cpu 使用量
    -> cpu_system, -- 内核空间的cpu 使用量
    -> -- context_voluntary, -- 自愿上下文切换
    -> -- context_involuntary, -- 非自愿上下文切换
    -> block_ops_in, -- 块调入次数
    -> block_ops_out, -- 块调出次数
    -> swaps -- 发生swap 的次数
    -> from
    -> information_schema.profiling as outert
    ->
    -> order by
    -> seq;
+----------+-----+------------+----------------------+----------+----------+------------+--------------+---------------+-------+
| query_id | seq | total_cost | state                | duration | cpu_user | cpu_system | block_ops_in | block_ops_out | swaps |
+----------+-----+------------+----------------------+----------+----------+------------+--------------+---------------+-------+
|        1 |   2 |   0.001984 | starting             | 0.000058 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |   3 |   0.001984 | checking permissions | 0.000010 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |   4 |   0.001984 | Opening tables       | 0.000033 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |   5 |   0.001984 | init                 | 0.000018 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |   6 |   0.001984 | System lock          | 0.000012 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |   7 |   0.001984 | optimizing           | 0.000006 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |   8 |   0.001984 | statistics           | 0.000014 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |   9 |   0.001984 | preparing            | 0.000013 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |  10 |   0.001984 | executing            | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |  11 |   0.001984 | Sending data         | 0.000130 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |  12 |   0.001984 | end                  | 0.000009 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |  13 |   0.001984 | query end            | 0.000008 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |  14 |   0.001984 | closing tables       | 0.001613 | 0.002000 |   0.000000 |            0 |             0 |     0 |
|        1 |  15 |   0.001984 | freeing items        | 0.000037 | 0.000000 |   0.000000 |            0 |             0 |     0 |
|        1 |  16 |   0.001984 | cleaning up          | 0.000020 | 0.000000 |   0.000000 |            0 |             0 |     0 |
+----------+-----+------------+----------------------+----------+----------+------------+--------------+---------------+-------+
时间: 2024-10-13 05:46:57

information_schema.profiling学习的相关文章

解决mysql报错:- Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ'

mysql执行报错: - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_fu

mysql遇见contains nonaggregated column 'information_schema.PROFILING.SEQ'异常

报错如下:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=on

information_schema.column_privileges 学习

mysql 的授权是分层次的 实例级 | 库级 | 表级 | 列级 而这些授权信息被保存在了mysql.user | mysql.db | mysql.tables_priv | mysql.column_priv 等表中 而information_schema.column_privileges 表中的信息来自于mysql.column_priv 表 1.information_schema.column_privileges 表中常用的列: 1.grantee :用户(对列就相应权限的用户)

information_schema.collation_character_set_applicability 学习

字符集和排序规则之间是不可以随便搭配的.如果你想知道一个字符集它所搭配的排序规则有哪些?那就可以从information_schema.collation_character_set_applicability 这个表来看 1.information_schema.collation_character_set_applicability 常用列说明: 1.character_set_name :字符集名 2.collation_name  :排序规则名 2.例子: 测试字符集和与之匹配的排序规

information_schema.collations 学习

information_schema.collations 表中的每一行对应一个排序规则 1.information_schema.collations 表中学用列: 1.id :排序规则的ID 2.is_default :是否是字符集的默认排序规则 3.collation_name :排序规则名 4.character_set_name  :这个排序规则所对应的字符集名字 5.is_compiled :是不已经被编译进MySQL来了 2.例子: 查看实例的排序规则信息 select id, i

information_schema.columns 学习

每一个表中的每一列都会在information_schema.columns表中对应一行 1.informaiton_schema.columns 常用列: 1.table_catalog :不管是table | view 这个列的值总是def 2.table_schema  :表 | 视图所在的数据库名 3.table_name  :表名 | 视图名 4.column_name  :列名 5.column_default   :列的默认值 6.is_nullable  :是否可以取空值 7.d

information_schema.triggers 学习

mysql实例中的每一个trigger 对应到information_schema.triggers 中有一行 1.information_schema.triggers 表的常用列: 1.trigger_catalog :永远是def 2.trigger_schema :trigger 所在的数据库名 3.event_manipulation :触发trigger 的事件类型可以是 insert | update | delete 4.event_object_schema  :trigger

information_schema.partitions 学习

1.partitions 表中的常用列说明: 1.table_schema:表所在的数据库名 2.table_name:表名 3.partition_method:表分区采用的分区方法 4.partition_expression:分区键 5.partions_name:分区名 6.table_rows:分区中所包涵的数据行数 7.data_free:分区中还未使用的空间 2.例子: 查询实例中的分区表.分区方法,分区字段 select concat(table_schema,'.',table

information_schema.referential_constraints 学习

information_schema.referential_constraints 表用于查看外键约束 1.information_schema.referential_constraints表的常用列: 1.constraint_schema :约束(外键)所在的库名 2.constraint_name :约束名(外键名) 3.unique_constraint_schema :被引用约束所在库名 4.unique_constraint_name :被引用约束名 2.例子: 1.定义一对有外