information_schema系列七

 
这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益。
第七篇主要看一下一下几系统表:PARAMETERS (定义参数),PARTITIONS(分区相关),PLUGINS(插件),PROCESSLIST(链接信息),PROFILING(优化相关,可以查看具体运行时间等信息) ,REFERENTIAL_CONSTRAINTS (外键约束相关信息),SCHEMATA(SCHEMA信息) ,SCHEMA_PRIVILEGES (mysql.db)
1:PARAMETERS
参数表存储了一些存储过程和方法的参数,以及存储过程的返回值信息。存储和方法在ROUTINES里面存储。
INFORMATION_SCHEMA Name Remarks
SPECIFIC_CATALOG def
SPECIFIC_SCHEMA routine database
SPECIFIC_NAME routine name
ORDINAL_POSITION 1, 2, 3, ... for parameters, 0 for function RETURNS clause
PARAMETER_MODE IN, OUT, INOUT (NULL for RETURNS)
PARAMETER_NAME parameter name (NULL for RETURNS)
DATA_TYPE same as for COLUMNS table
CHARACTER_MAXIMUM_LENGTH same as for COLUMNS table
CHARACTER_OCTET_LENGTH same as for COLUMNS table
NUMERIC_PRECISION same as for COLUMNS table
NUMERIC_SCALE same as for COLUMNS table
DATETIME_PRECISION same as for COLUMNS table
CHARACTER_SET_NAME same as for COLUMNS table
COLLATION_NAME same as for COLUMNS table
DTD_IDENTIFIER same as for COLUMNS table
ROUTINE_TYPE same as for ROUTINES table
具体的列大部分和ROUTINES里面一致,,前面的系列已经讲过了,所以不过多介绍了。
2: PARTITIONS
顾名思义存储了MySQL分区表相关的信息,通过这张表我们可以查询到分区的相关信息,如下:
查看数据库中已分区的表:
select distinct TABLE_NAME from information_schema.PARTITIONS where TABLE_SCHEMA='qiandai' and PARTITION_NAME is not null ;

查看每个分区表有多少个分区以及每个分区的行数:

select TABLE_SCHEMA, TABLE_NAME,PARTITION_NAME,TABLE_ROWS,PARTITION_EXPRESSION,PARTITION_METHOD,PARTITION_DESCRIPTION 

from information_schema.PARTITIONS where TABLE_SCHEMA='qiandai' and TABLE_NAME='employees' ;

3:PLUGINS

这个表存放的是系统相关插件信息,可以通过以下的语句查看
SHOW PLUGINS
看到基本上是MySQL的插件信息,是否是活动状态等信息。其实SHOW PLUGINS本身就是通过这张表来拉取道德数据。
4: PROCESSLIST
我们可以看到PROCESSLIST和show processlist里面的信息是一致的,显示当前的连接数
show processlist其实就是从这个表拉取数据,PROCESSLIST的数据是他的基础。所以我们相当于在内存中查询一样,这些操作都是很快的。
5:PROFILING
这个表提供报表分析信息,可以通过SHOW PROFILES ;show PROFILE都可以提供相同的信息。
INFORMATION_SCHEMA Name SHOW Name
QUERY_ID Query_ID
SEQ  
STATE Status
DURATION Duration
CPU_USER CPU_user
CPU_SYSTEM CPU_system
CONTEXT_VOLUNTARY Context_voluntary
CONTEXT_INVOLUNTARY Context_involuntary
BLOCK_OPS_IN Block_ops_in
BLOCK_OPS_OUT Block_ops_out
MESSAGES_SENT Messages_sent
MESSAGES_RECEIVED Messages_received
PAGE_FAULTS_MAJOR Page_faults_major
PAGE_FAULTS_MINOR Page_faults_minor
SWAPS Swaps
SOURCE_FUNCTION Source_function
SOURCE_FILE Source_file
SOURCE_LINE Source_line
看一下列基本信息。
SHOW PROFILES和SHOW PROFILE的一些记录。
默认这个功能是关闭的,可以使用以下语句打开这个功能:
SET profiling = 1;

然后就可以看到这个会话记录的信息。

我们运行一个查询信息,
select * from qiandai.t1;

然后进行查询:

SHOW PROFILES;

就能够查看记录的信息了:

root@localhost [(none)]>SHOW PROFILES;
+----------+------------+--------------------------+
| Query_ID | Duration | Query |
+----------+------------+--------------------------+
| 1 | 0.00101925 | select * from qiandai.t1 |
+----------+------------+--------------------------+
1 row in set, 1 warning (0.00 sec)

能看到执行信息,还有使用的时间。

然后使用SHOW PROFILE可以看到具体的耗时,从这个查询开始到结束:
root@localhost [(none)]>SHOW PROFILE;
+----------------------+----------+
| Status | Duration |
+----------------------+----------+
| starting | 0.000219 |
| checking permissions | 0.000035 |
| checking permissions | 0.000016 |
| Opening tables | 0.000047 |
| init | 0.000101 |
| System lock | 0.000040 |
| optimizing | 0.000054 |
| statistics | 0.000083 |
| preparing | 0.000063 |
| executing | 0.000019 |
| Sending data | 0.000187 |
| end | 0.000021 |
| query end | 0.000023 |
| closing tables | 0.000023 |
| freeing items | 0.000040 |
| cleaning up | 0.000051 |
+----------------------+----------+
16 rows in set, 1 warning (0.00 sec)

SHOW PROFILE可以深入的查看服务器执行语句的工作情况。以及也能帮助你理解执行语句消耗时间的情况。一些限制是它没有实现的功能,不能查看和剖析其他连接的语句,以及剖析时所引起的消耗。

SHOW PROFILES显示最近发给服务器的多条语句,条数根据会话变量profiling_history_size定义,默认是15,最大值为100。设为0等价于关闭分析功能。
SHOW PROFILE FOR QUERY n,这里的n就是对应SHOW PROFILES输出中的Query_ID。
SHOW PROFILE CPU FOR query 1;其中类型是可以选择的,我们可以根据自己的需要进行查询。
(1)ALL 显示所有性能信息
(2)LOCK IO 显示块IO操作的次数
(3)CONTEXT SWITCHES 显示上下文切换次数,不管是主动还是被动
(4)CPU 显示用户CPU时间、系统CPU时间
(5)IPC 显示发送和接收的消息数量
(6)MEMORY [暂未实现]
(7)PAGE FAULTS 显示页错误数量
(8)SOURCE 显示源码中的函数名称与位置
(9)SWAPS 显示SWAP的次数

6:REFERENTIAL_CONSTRAINTS

这个表提供的外键相关的信息,而且只提供外键相关信息;可以通过TABLE_NAME进行筛选CONSTRAINT_SCHEMA 这个是外键约束名字
7:SCHEMATA
这个表提供了实例下有多少个数据库,而且还有数据库默认的字符集:
8:SCHEMA_PRIVILEGES
这个提供了数据库的相关权限,这个表是内存表是从mysql.db中拉去出来的。
select * from information_schema.SCHEMA_PRIVILEGES ;

 

information_schema系列七的更多相关文章

  1. WCF编程系列(七)信道及信道工厂

    WCF编程系列(七)信道及信道工厂   信道及信道栈 前面已经提及过,WCF中客户端与服务端的交互都是通过消息来进行的.消息从客户端传送到服务端会经过多个处理动作,在WCF编程模型中,这些动作是按层 ...

  2. SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现

    原文:SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft ...

  3. C语言高速入口系列(七)

    C语言高速入口系列(七) C语言指针进阶 本章引言: 在前面第5节中我们对C语言的指针进行了初步的学习理解;作为C语言的灵魂, C指针肯定没那么简单,在这一节中,我们将会对指针进行进一步的学习,比方二 ...

  4. 7.oracle学习门户系列七---网络管理和配置

    oracle学习门户系列七 网络管理和配置 们学习了模式和用户.包含模式定义以及模式的作用. 这篇我么来看下ORACLE数据库中的网络管理和配置.只是这篇好像和上篇没有继承啊.这怎么看? Ok,事实上 ...

  5. Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager)

    Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager) 本篇主要讲解iOS开发中的网络监控 前言 在开发中,有时候我们需要获取这些信息: 手机是否联网 ...

  6. java多线程系列(七)---Callable、Future和FutureTask

    Callable.Future和FutureTask 前言:如有不正确的地方,还望指正. 目录 认识cpu.核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量 ...

  7. java基础解析系列(七)---ThreadLocal原理分析

    java基础解析系列(七)---ThreadLocal原理分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)-- ...

  8. information_schema系列十

    information_schema系列十   1:INNODB_FT_CONFIG 这张表存的是全文索引的信息,查询前可以先通过以下语句查询一下开启全文索引的表: show variables li ...

  9. information_schema系列九

    information_schema系列九   1:INNODB_SYS_FOREIGN 这个表存储的是INNODB关于外键的元数据信息 Column name Description ID 外键的名 ...

随机推荐

  1. maven centos7 环境变量

    tar -xvf apache-maven-3.3.9-bin.tar.gz mv apache-maven-3.3.9 /usr/local/apache-maven 文件存放好之后,设置环境变量, ...

  2. 【LOJ】#2536. 「CQOI2018」解锁屏幕

    题解 什么破题,看一眼就能想出来\(n^2 2^n\)看了一眼数据范围有点虚,结果跑得飞快= = 处理出\(a[i][j]\)表示从\(i\)到\(j\)经过的点的点集 然后\(f[i][S]\)表示 ...

  3. 【LOJ】#2182. 「SDOI2015」寻宝游戏

    题解 终于了解怎么动态维护虚树了 就是把点按照dfs序排个序啊 这道题显然是求虚树上所有边长的两倍 我们把dfs序排完序,相邻两个点加上路径长(包括首尾),删除的时候删一个点减去它到两边再加上新近相邻 ...

  4. Web Sevice平台

    web Service 三种基本元素: SOAP .WSDL .UDDI 什么是SOAP:       XML+HTTP 基本的Web Service平台 SOAP 简易对象访问协议 ,是一宗用于发送 ...

  5. 【Java】 大话数据结构(16) 排序算法(3) (堆排序)

    本文根据<大话数据结构>一书,实现了Java版的堆排序. 更多:数据结构与算法合集 基本概念 堆排序种的堆指的是数据结构中的堆,而不是内存模型中的堆. 堆:可以看成一棵完全二叉树,每个结点 ...

  6. 030 RDD Join中宽依赖与窄依赖的判断

    1.规律 如果JoinAPI之前被调用的RDD API是宽依赖(存在shuffle), 而且两个join的RDD的分区数量一致,join结果的rdd分区数量也一样,这个时候join api是窄依赖 除 ...

  7. 对C转换说明符的误解以及关于数组的一些知识

    事实上,scanf()函数中%c并非是用来输入单个字符的,而是用来输入一组字符的. 例如: ]; scanf("%3c",a); 其中“3”规定了输入数据的宽度,当然宽度为“1”的 ...

  8. Python - 列表与字符串的互相转换

    题目:请将text字符串中的数字取出,并输出成一个新的字符串 text = "aAsmr3 idd4bgs7Dlsf 9eAF" b = list(text) new_list = ...

  9. 日志回滚:python(日志分割)

    日志回滚:python 什么是日志回滚? 答: 将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会越来越庞大,进而影响系统的性能.因此,有必要对日志文件按某种条件进行切分,要切分日 ...

  10. [CF580E]Kefa and Watch

    题目大意: 维护一个由'0'~'9'构成的字符串,支持以下两种操作: 1.将指定区间内的所有字符修改为同一指定字符. 2.询问$x$是否为指定区间内的循环节. 思路: 建立一棵线段树,维护每个子串的哈 ...