这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益。
1:FILES
这张表提供了有关在MySQL的表空间中的数据存储的文件的信息
我们刚创建一张表,现在来看一下这张表,我新建了一张maxiangqian名字的表,然后进行查询。
在5.7.8以后版本FILES就是为InnoDB 的数据文件提供记录。在MySQL集群该表还提供了有关在MySQL集群磁盘数据表存储的文件的信息。
这个表的数据是从InnoDB in-memory中拉取出来的,所以说这张表本身也是一个内存表,每次重启重新进行拉取。也就是我们下面要说的INNODB_SYS_DATAFILES这张表。还要注意一点的是这张表包含有临时表的信息,所以说和SYS_DATAFILES 这张表是不能够对等的,还是要从INNODB_SYS_DATAFILES看。如果undo表空间也配置是InnoDB 的话,那么也是会被记录下来的。
老规矩贴一下官网的全表的解释:中间show name是J结合官方解释后我自己的理解
INFORMATION_SCHEMA Name SHOW Name Remarks
FILE_ID 文件的编号 MySQL extension
FILE_NAME 文件名 MySQL extension
FILE_TYPE 表空间文件类型 MySQL extension
TABLESPACE_NAME 表空间名 MySQL extension
TABLE_CATALOG   MySQL extension
TABLE_SCHEMA   MySQL extension
TABLE_NAME   MySQL extension
LOGFILE_GROUP_NAME   MySQL extension
LOGFILE_GROUP_NUMBER   MySQL extension
ENGINE 默认引擎 MySQL extension
FULLTEXT_KEYS   MySQL extension
DELETED_ROWS   MySQL extension
UPDATE_COUNT   MySQL extension
FREE_EXTENTS 在当前的数据文件的可用空间 MySQL extension
TOTAL_EXTENTS 当前文件占用的空间 MySQL extension
EXTENT_SIZE page size如果是4,8,16KB的话就是1M。如果是32k的话就是2M,64k的话就是4M,innodb_page_size记录页大小,其他的时候,默认不会记录这个大小。 MySQL extension
INITIAL_SIZE 文件初始大小,以字节为单位 MySQL extension
MAXIMUM_SIZE 允许的文件最大值,一般情况下这个值是NULL MySQL extension
AUTOEXTEND_SIZE 自增长的值,可以通过两个值设置innodb_data_file_path ,innodb_temp_data_file_path MySQL extension
CREATION_TIME   MySQL extension
LAST_UPDATE_TIME   MySQL extension
LAST_ACCESS_TIME   MySQL extension
RECOVER_TIME   MySQL extension
TRANSACTION_COUNTER   MySQL extension
VERSION   MySQL extension
ROW_FORMAT   MySQL extension
TABLE_ROWS   MySQL extension
AVG_ROW_LENGTH   MySQL extension
DATA_LENGTH   MySQL extension
MAX_DATA_LENGTH   MySQL extension
INDEX_LENGTH   MySQL extension
DATA_FREE 可用空间 MySQL extension
CREATE_TIME 创建时间 MySQL extension
UPDATE_TIME 更改时间 MySQL extension
CHECK_TIME   MySQL extension
CHECKSUM   MySQL extension
STATUS 默认这个值是NOMAL,当为 IMPORTING时候就表示不可用 MySQL extension
EXTRA   MySQL extension
一般情况下我们直接筛选出来查询还是比较好的,通过下面的语句,其他的列一般是不会记录信息的,官网也没给太多的解释:
SELECT FILE_ID, FILE_NAME, FILE_TYPE, TABLESPACE_NAME, FREE_EXTENTS, TOTAL_EXTENTS, EXTENT_SIZE, INITIAL_SIZE, MAXIMUM_SIZE, AUTOEXTEND_SIZE, DATA_FREE, STATUS ENGINE FROM INFORMATION_SCHEMA.FILES \G
 
2:INNODB_SYS_DATAFILES
我们来重新查一下这个记录信息:
很容易看出来这张表就是记录的表的文件存储的位置和表空间的一个对应关系。这个就是相当容易理解了,就不多做解释了。
不过有一点我们要记住,这个表的SPACE是和FILES这张系统表的TABLESPACE_NAME这个列的最后一个值是相对应的。可以方便我们以后查阅
3:GLOBAL_STATUS 和SESSION_STATUS 
这张表默认是提供有关服务器状态变量的信息来用的一般情况是不启用的,我们可以通过以下的方法来查看信息
 SHOW GLOBAL STATUS 和GLOBAL_STATUS 是对应的
贴一下列,由于两个表的列是一样的,所以说贴出来一个就好了
INFORMATION_SCHEMA Name SHOW Name Remarks
VARIABLE_NAME 变量名  
VARIABLE_VALUE 变量值  
 
详细的参数我就不再讲了,因为我也不懂啊。后面慢慢补上来。
4:GLOBAL_VARIABLES 和SESSION_VARIABLES
这两张系统表爷放在了一起,主要原因和上面两张是一样的,结构相同,而且可以通过其他方式查询,所以一般情况下是不启动的。
我们可以通过以下的方式进行查询:
SHOW GLOBAL VARIABLES 对应的是GLOBAL_VARIABLES
SHOW SESSION VARIABLES 对应的就是SESSION_VARIABLES
下面给出一条记录做个对比看一下:
 
我们可以看到,其实一个是实例级别的参数,一个是会话级别的参数。要记住一点就是 我们平时用的show variables 是等效与 show session variables.
在这里我们也顺便学习一下,全局变量和会话变量的区别:
系统变量又分为全局变量与会话变量。全局变量在MYSQL启动的时候由服务器自动将它们初始化为默认值,这些默认值可以通过更改my.cnf这个文件来更改。
  会话变量在每次建立一个新的连接的时候,由MYSQL来初始化。MYSQL会将当前所有全局变量的值复制一份。来做为会话变量。(也就是说,如果在建立会话以后,没有手动更改过会话变量与全局变量的值,那所有这些变量的值都是一样的。)
  全局变量与会话变量的区别就在于,对全局变量的修改会影响到整个服务器,但是对会话变量的修改,只会影响到当前的会话(也就是当前的数据库连接)。我们可以利用show session variables;语句将所有的会话变量输出
以上关于变量的这四张表其实也是内存表,每次系统启动默认从my.cnf读取生成,如果my.cnf没有配置的话就会使用默认值。
PS:其实关于表空间文件那边也应该扩充一下,以后可以学习一下分享出来,今天有点晚了。就分享这么多吧
 

information_schema系列三(文件,变量)的更多相关文章

  1. 开源一款强大的文件服务组件(QJ_FileCenter)(系列三 访问接口与项目集成)

    系列文章 1. 开源一款强大的文件服务组件(QJ_FileCenter)(系列一) 2. 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明) 3. 开源一款强大的文件服务组件 ...

  2. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  3. sed修炼系列(三):sed高级应用之实现窗口滑动技术

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  4. 使用 PySide2 开发 Maya 插件系列三:qt语言国际化(internationalization)

    使用 PySide2 开发 Maya 插件系列三:qt语言国际化(internationalization) 前言: 这是 qt for python 的语言国际化,基于 UI 的,python 也有 ...

  5. Linux Kernel系列三:Kernel编译和链接中的linker script语法详解

    先要讲讲这个问题是怎么来的.(咱们在分析一个技术的时候,先要考虑它是想解决什么问题,或者学习新知识的时候,要清楚这个知识的目的是什么). 我在编译内核的时候,发现arch/arm/kernel目录下有 ...

  6. S5PV210开发系列三_简易Bootloader的实现

    S5PV210开发系列三 简易Bootloader的实现 象棋小子          1048272975 Bootloader是嵌入式系统上电后第一段运行的代码.对于功能简单的处理器,可能并没有Bo ...

  7. 很有用的PHP笔试题系列三

    1. 什么事面向对象?主要特征是什么? 面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰.主要特征:封装.继承.多态. 2. SESSION 与 COOKIE的区别是什么,请从 ...

  8. 《Visual C++ 2010入门教程》系列三:关于C++的一些问题

    <Visual C++ 2010入门教程>系列三:关于C++的一些问题   这一回我自己都不知道应该写点什么好,或许今天的篇幅会比往常短很多.我说过,这不是C++的教程,因为我还没有那个能 ...

  9. Phalcon如何切换数据库《Phalcon入坑指南系列 三》

    本系列目录 一.Phalcon在Windows上安装 <Phalcon入坑指南系列 一> 二.Phalcon入坑必须知道的功能(项目配置.控制器.模型.增.删.改.查) 三.Phalcon ...

随机推荐

  1. 简单的JS多物体的运动---运动和透明度的变化

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  2. IE6 IE7 不支持 JSON

    最近发现ie6.7不支持json,解决方法:引入json2.js     <script type="text/javascript" src="json2.js& ...

  3. Thrift 个人实战--Thrift 的序列化机制

    前言: Thrift作为Facebook开源的RPC框架, 通过IDL中间语言, 并借助代码生成引擎生成各种主流语言的rpc框架服务端/客户端代码. 不过Thrift的实现, 简单使用离实际生产环境还 ...

  4. Selenium 中 cssSelector定位

    一.为什么使用cssSelector定位元素? 目前针对一些常规定位方式有:By.id.By.name.By.LinkTest(针对<a>标签).By.ClassName 针对不太好定位的 ...

  5. Opencv读取与显示图片

    #include "stdafx.h"#include "cv.h"#include "cxcore.h"#include "hi ...

  6. LeetCode() Ugly Number II 背下来!

    一个别人,非常牛逼的思路,膜拜了!orz!!!! vector <int> results (1,1); int i = 0, j = 0, k = 0; while (results.s ...

  7. 2016HUAS_ACM暑假集训2B - The Suspects(感染者)

    并查集初步应用,还不是很熟练.并查集两个主要函数:Union和Find.Union通常把两条不连通的支路使其连通:Find用来查找根节点,必要的要进行路径压缩. 大致题意:0号学生是默认的感染者,在M ...

  8. 面试题一 链表中倒数第k个结点

    void findLastK(LinkedNode head, int k, int n){ if (head == NULL || k == 0) return; LinkedNode t1 = h ...

  9. 基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作

    在上一篇随笔中,我对Web开发框架的总体界面进行了介绍,其中并提到了我的<Web开发框架>的控制器的设计关系,Web开发框架沿用了我的<Winform开发框架>的很多架构设计思 ...

  10. nunjucks.js模板渲染

    直接用 script 引入文件: <script src="nunjucks.js"></script> 是使用 render 来直接渲染文件,这种方式支持 ...