0

0

MySQL5.7SYS系统SCHEMA_MySQL

PHP中文网

PHP中文网

发布时间:2016-05-27 13:46:38

|

1270人浏览过

|

来源于php中文网

原创

在说明系统数据库之前,先来看下mysql在数据字典方面的演变历史:
mysql4.1 提供了information_schema 数据字典。从此可以很简单的用sql语句来检索需要的系统元数据了。
mysql5.5 提供了performance_schema 性能字典。 但是这个字典比较专业,一般人可能也就看看就不了了之了。
mysql5.7 提供了 sys系统数据库。 sys数据库里面包含了一系列的存储过程、自定义函数以及视图来帮助我们快速的了解系统的元数据信息。

sys系统数据库结合了information_schema和performance_schema的相关数据,让我们更加容易的检索元数据。 现在呢,我就示范下几种场景下如何快速的使用。

第一,
比如之前想要知道某个表是否存在与否,可以用以下两种方法:

a, 悲观的方法,写sql从information_schema中拿信息:

mysql> SELECT IF(COUNT(*) = 0,'Not exists!','Exists!') AS 'result' FROM information_schema.tables 
WHERE table_schema = 'new_feature' AND table_name = 't1';
+-------------+
| result      |
+-------------+
| Not exists! |
+-------------+
1 row in set (0.00 sec)

B,乐观的方法,假设表存在,写一个存储过程:

DELIMITER $$
USE `new_feature`$$


DROP PROCEDURE IF EXISTS `sp_table_exists`$$


CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_table_exists`(
    IN db_name VARCHAR(64),
    IN tb_name VARCHAR(64),
    OUT is_exists VARCHAR(60)
    )
BEGIN
      DECLARE no_such_table CONDITION FOR 1146;
      DECLARE EXIT HANDLER FOR no_such_table
      BEGIN
        SET is_exists = 'Not exists!';
      END;
      
      SET @stmt = CONCAT('select 1 from ',db_name,'.',tb_name);
      PREPARE s1 FROM @stmt;
      EXECUTE s1;
      DEALLOCATE PREPARE s1;
      SET is_exists = 'Exists!';
    END$$

DELIMITER ;

现在来调用:

mysql> call sp_table_exists('new_feature','t1',@result);
Query OK, 0 rows affected (0.00 sec)

mysql> select @result;
+-------------+
| @result     |
+-------------+
| Not exists! |
+-------------+
1 row in set (0.00 sec)

现在我们直接用sys数据库里面现有的存储过程来进行调用,

mysql> CALL table_exists('new_feature','t1',@v_is_exists);
Query OK, 0 rows affected (0.00 sec)


mysql> SELECT IF(@v_is_exists = '','Not exists!',@v_is_exists) AS 'result';
+-------------+
| result      |
+-------------+
| Not exists! |
+-------------+
1 row in set (0.00 sec)

第二,获取没有使用过的索引。

mysql> SELECT * FROM schema_unused_indexes;
+---------------+-------------+--------------+
| object_schema | object_name | index_name   |
+---------------+-------------+--------------+
| new_feature   | t1          | idx_log_time |
| new_feature   | t1          | idx_rank2    |
+---------------+-------------+--------------+
2 rows in set (0.00 sec)

第三, 检索指定数据库下面的表扫描信息,过滤出执行次数大于10的查询,

九歌
九歌

九歌--人工智能诗歌写作系统

下载
mysql> SELECT * FROM statement_analysis WHERE db='new_feature' AND full_scan = '*'  AND exec_count > 10\G
*************************** 1. row ***************************
            query: SHOW STATUS 
               db: new_feature
        full_scan: *
       exec_count: 26
        err_count: 0
       warn_count: 0
    total_latency: 74.68 ms
      max_latency: 3.86 ms
      avg_latency: 2.87 ms
     lock_latency: 4.50 ms
        rows_sent: 9594
    rows_sent_avg: 369
    rows_examined: 9594
rows_examined_avg: 369
    rows_affected: 0
rows_affected_avg: 0
       tmp_tables: 0
  tmp_disk_tables: 0
      rows_sorted: 0
sort_merge_passes: 0
           digest: 475fa3ad9d4a846cfa96441050fc9787
       first_seen: 2015-11-16 10:51:17
        last_seen: 2015-11-16 11:28:13
*************************** 2. row ***************************
            query: SELECT `state` , `round` ( SUM ... uration (summed) in sec` DESC 
               db: new_feature
        full_scan: *
       exec_count: 12
        err_count: 0
       warn_count: 12
    total_latency: 16.43 ms
      max_latency: 2.39 ms
      avg_latency: 1.37 ms
     lock_latency: 3.54 ms
        rows_sent: 140
    rows_sent_avg: 12
    rows_examined: 852
rows_examined_avg: 71
    rows_affected: 0
rows_affected_avg: 0
       tmp_tables: 24
  tmp_disk_tables: 0
      rows_sorted: 140
sort_merge_passes: 0
           digest: 538e506ee0075e040b076f810ccb5f5c
       first_seen: 2015-11-16 10:51:17
        last_seen: 2015-11-16 11:28:13
2 rows in set (0.01 sec)

第四, 同样继续上面的,过滤出有临时表的查询,

mysql> SELECT * FROM statement_analysis WHERE db='new_feature' AND tmp_tables > 0 ORDER BY 
tmp_tables DESC LIMIT 1\G
*************************** 1. row ***************************
            query: SELECT `performance_schema` .  ... name` . `SUM_TIMER_WAIT` DESC 
               db: new_feature
        full_scan: *
       exec_count: 2
        err_count: 0
       warn_count: 0
    total_latency: 87.96 ms
      max_latency: 59.50 ms
      avg_latency: 43.98 ms
     lock_latency: 548.00 us
        rows_sent: 101
    rows_sent_avg: 51
    rows_examined: 201
rows_examined_avg: 101
    rows_affected: 0
rows_affected_avg: 0
       tmp_tables: 332
  tmp_disk_tables: 15
      rows_sorted: 0
sort_merge_passes: 0
           digest: ff9bdfb7cf3f44b2da4c52dcde7a7352
       first_seen: 2015-11-16 10:24:42
        last_seen: 2015-11-16 10:24:42
1 row in set (0.01 sec)

可以看到上面查询详细的详细,再也不用执行show status 手工去过滤了。

第五, 检索执行次数排名前五的语句,

mysql>SELECT statement,total FROM user_summary_by_statement_type WHERE `user`='root' ORDER BY total DESC LIMIT 5;
+-------------------+-------+
| statement         | total |
+-------------------+-------+
| jump_if_not       | 17635 |
| freturn           |  3120 |
| show_create_table |   289 |
| Field List        |   202 |
| set_option        |   190 |
+-------------------+-------+
5 rows in set (0.01 sec)

示例我就写这么多了,详细的去看使用手册并且自己摸索去吧。    

以上就是MySQL5.7SYS系统SCHEMA_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

2

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

437

2026.01.28

包子漫画在线官方入口大全
包子漫画在线官方入口大全

本合集汇总了包子漫画2026最新官方在线观看入口,涵盖备用域名、正版无广告链接及多端适配地址,助你畅享12700+高清漫画资源。阅读专题下面的文章了解更多详细内容。

143

2026.01.28

ao3中文版官网地址大全
ao3中文版官网地址大全

AO3最新中文版官网入口合集,汇总2026年主站及国内优化镜像链接,支持简体中文界面、无广告阅读与多设备同步。阅读专题下面的文章了解更多详细内容。

255

2026.01.28

php怎么写接口教程
php怎么写接口教程

本合集涵盖PHP接口开发基础、RESTful API设计、数据交互与安全处理等实用教程,助你快速掌握PHP接口编写技巧。阅读专题下面的文章了解更多详细内容。

8

2026.01.28

php中文乱码如何解决
php中文乱码如何解决

本文整理了php中文乱码如何解决及解决方法,阅读节专题下面的文章了解更多详细内容。

13

2026.01.28

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

10

2026.01.28

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

24

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

124

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 5万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8万人学习

Git 教程
Git 教程

共21课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号