我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL 5.7 performance_schema库和sys库常用SQL

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL 5.7 performance_schema库和sys库常用SQL

performance_schema库常用SQL:

查看没有主键的表:

    SELECT DISTINCT t.table_schema, t.table_name

      FROM information_schema.tables AS t

      LEFT JOIN information_schema.columns AS c ON t.table_schema = c.table_schema 

AND t.table_name = c.table_name AND c.column_key = "PRI"

     WHERE t.table_schema NOT IN ('information_schema', 'mysql', 'performance_schema')

       AND c.table_name IS NULL AND t.table_type != 'VIEW';


例如:

mysql> SELECT DISTINCT t.table_schema, t.table_name

    ->       FROM information_schema.tables AS t

    ->       LEFT JOIN information_schema.columns AS c ON t.table_schema = c.table_schema 

AND t.table_name = c.table_name  AND c.column_key = "PRI"

    ->      WHERE t.table_schema NOT IN ('information_schema', 'mysql', 'performance_schema')

    ->        AND c.table_name IS NULL AND t.table_type != 'VIEW';


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

| table_schema | table_name                |

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

| S85          | dsf                       |

| test         | innodb_lock_monitor       |

| test         | innodb_monitor            |

| test         | innodb_table_monitor      |

| test         | innodb_tablespace_monitor |

| zhwp102      | t_orgpriority             |

| zhwp102      | t_task_ext                |

| zhwp102      | t_web_common              |

| zhwp111      | t_orgpriority             |

| zhwp111      | t_task_ext                |

| zhwp111      | t_web_common              |

| zhwp111      | t_weibo                   |

| zhwp_prod    | t_orgpriority             |

| zhwp_prod    | t_task_ext                |

| zhwp_prod    | t_web_common              |

| zhwp_prod    | t_weibo                   |

| zhwpzj111    | t_orgpriority             |

| zhwpzj111    | t_task_ext                |

| zhwpzj111    | t_web_common              |

| zhwpzj111    | t_weibo                   |

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

20 rows in set (1 min 27.55 sec)


没有主键:

mysql> desc S85.dsf;    

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

| Field      | Type                 | Null | Key | Default           | Extra |

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

| sourceDay  | date                 | YES  |     | NULL              |       |

| sourceTime | datetime             | NO   |     | CURRENT_TIMESTAMP |       |

| affections | smallint(5) unsigned | NO   |     | 1                 |       |

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

3 rows in set (0.00 sec)


查看是谁创建的临时表


    SELECT user, host, event_name, count_star AS cnt, sum_created_tmp_disk_tables AS tmp_disk_tables, 

sum_created_tmp_tables AS tmp_tables

      FROM performance_schema.events_statements_summary_by_account_by_event_name

     WHERE sum_created_tmp_disk_tables > 0

        OR sum_created_tmp_tables > 0 ;



没有正确关闭数据库连接的用户

    SELECT ess.user, ess.host

         , (a.total_connections - a.current_connections) - ess.count_star as not_closed

         , ((a.total_connections - a.current_connections) - ess.count_star) * 100 /

           (a.total_connections - a.current_connections) as pct_not_closed

      FROM performance_schema.events_statements_summary_by_account_by_event_name ess

      JOIN performance_schema.accounts a on (ess.user = a.user and ess.host = a.host)

     WHERE ess.event_name = 'statement/com/quit'

       AND (a.total_connections - a.current_connections) > ess.count_star ;


DDL元数据锁跟踪

1.打开跟踪:

UPDATE performance_schema.setup_instruments SET ENABLED = 'YES' WHERE 

NAME = 'wait/lock/metadata/sql/mdl';

UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE

 NAME = 'global_instrumentation';

2.查询metadata lock:

select  * from performance_schema.metadata_locks;

select  * from performance_schema.metadata_locks where LOCK_STATUS like 'PENDING%';

select ID from information_schema.processlist where Info  like '%20190416%' \G

SELECT OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME,LOCK_STATUS,processlist_id 

    FROM performance_schema.metadata_locks mdl

    INNER JOIN performance_schema.threads thd ON mdl.owner_thread_id = thd.thread_id 

    WHERE processlist_id <> @@pseudo_thread_id;


3.关闭跟踪:

UPDATE performance_schema.setup_instruments SET ENABLED = 'NO' WHERE 

NAME = 'wait/lock/metadata/sql/mdl';    

   

DDL执行进度跟踪

1.打开跟踪:

UPDATE performance_schema.setup_instruments SET ENABLED = 'YES' WHERE NAME LIKE 'stage/innodb/alter%';

UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE '%stages%';

2.查看DDL执行进度:

SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED,(WORK_COMPLETED/WORK_ESTIMATED)*100 

as COMPLETED FROM performance_schema.events_stages_current;


sys库常用SQL:

查看表访问量

select table_schema,table_name,sum(io_read_requests+io_write_requests) io from sys.schema_table_statistics 

group by table_schema,table_name order by io desc limit 10;


查看数据库连接情况

select * from sys.processlist \G

select * from sys.session limit 10 \G

select * from sys.x$processlist \G

select * from sys.x$session \G


查看冗余索引

select table_schema,table_name,redundant_index_name,redundant_index_columns,dominant_index_name,

dominant_index_columns  from sys.schema_redundant_indexes;


查看未使用索引

select * from sys.schema_unused_indexes;


表自增ID监控

select * from sys.schema_auto_increment_columns limit 10;


查看实际消耗磁盘IO的文件

select file,avg_read+avg_write as avg_io from sys.io_global_by_file_by_bytes order by avg_io desc limit 10;


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL 5.7 performance_schema库和sys库常用SQL

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql常用sql与命令之从入门到删库跑路

启动与停止 启动mysql服务sudo /usr/local/mysql/support-files/mysql.server start停止mysql服务sudo /usr/local/mysql/support-files/mysql.
2022-05-29

mysql数据库操作_高手进阶常用的sql命令语句大全

mysql数据库操作sql命令语句大全:三表连表查询、更新时批量替换字段部分字符、判断某一张表是否存在、自动增长恢复从1开始、查询重复记录、更新时字段值等于原值加上一个字符串、更新某字段为随机值、复制表数据到另一个表、创建表时拷贝其他表的数
2022-11-20

如何使用SQL语句在MySQL中创建和管理数据库?

如何使用SQL语句在MySQL中创建和管理数据库?MySQL是一种广泛应用的关系型数据库管理系统,提供了丰富的SQL语句来创建和管理数据库。在本文中,我们将详细介绍如何使用SQL语句在MySQL中创建和管理数据库,并提供具体的代码示例。一、
如何使用SQL语句在MySQL中创建和管理数据库?
2023-12-17

mysql数据库操作_高手进阶常用的sql命令语句大全 原创

mysql数据库操作sql命令语句大全:三表连表查询、更新时批量替换字段部分字符、判断某一张表是否存在、自动增长恢复从1开始、查询重复记录、更新时字段值等于原值加上一个字符串、更新某字段为随机值、复制表数据到另一个表、创建表时拷贝其他表的数据和结构...
2022-11-21

编程热搜

目录