24. TABLES

TABLES表提供有关数据库中表的信息。

TABLES表有以下列:

  • TABLE_CATALOG :表所属目录的名称。该值始终为def。
  • TABLE_SCHEMA :表所属schema(database)的名称
  • TABLE_NAME :表名称
  • TABLE_TYPE :用于表的BASE TABLE,用于视图的VIEW或用于INFORMATION_SCHEMA表的SYSTEM VIEW。TABLES表未列出TEMPORARY表。
  • ENGINE :表的存储引擎。请参阅,InnoDB存储引擎和,替代存储引擎

    对于分区表,ENGINE显示所有分区使用的存储引擎的名称。
  • VERSION :表的.frm文件的版本号。
  • ROW_FORMAT :行存储格式(Fixed, Dynamic, Compressed, Redundant, Compact)。 对于MyISAM表,Dynamic对应myisamchk -dvv报告为Packed的内容。 使用Antelope文件格式时,InnoDB表格式为Redundant或Compact;使用Barracuda文件格式时,InnoDB表格格式为Compressed或Dynamic。
  • TABLE_ROWS :行数。 某些存储引擎(如MyISAM)会存储确切的计数。 对于其他存储引擎,例如InnoDB,此值是近似值,并且可能与实际值相差多达40%至50%。 在这种情况下,使用SELECT COUNT(*)来获得准确的计数。

    INFORMATION_SCHEMA表的TABLE_ROWS为NULL。

    对于InnoDB表,行计数只是SQL优化中使用的粗略估计。 (如果对InnoDB表进行了分区,也是如此。)
  • AVG_ROW_LENGTH :平均行长。

    有关相关信息,请参阅本节末尾的Notes。
  • DATA_LENGTH :对于MyISAM,DATA_LENGTH是数据文件的长度,以字节为单位。

    对于InnoDB,DATA_LENGTH是为聚簇索引分配的近似内存量,以字节为单位。 具体来说,它是聚集索引大小(以页为单位)乘以InnoDB页面大小。

    有关其他存储引擎的信息,请参阅本节末尾的Notes。
  • MAX_DATA_LENGTH:对于MyISAM,MAX_DATA_LENGTH是数据文件的最大长度。 这是在给定数据指针大小的情况下可以存储在表中的数据的总字节数。

    不适用InnoDB。

    有关其他存储引擎的信息,请参阅本节末尾的注释。
  • INDEX_LENGTH :对于MyISAM,INDEX_LENGTH是索引文件的长度,以字节为单位。

    对于InnoDB,INDEX_LENGTH是为非聚集索引分配的大致内存量,以字节为单位。 具体来说,它是非聚集索引大小(以页为单位)乘以InnoDB页面大小的总和。

    有关其他存储引擎的信息,请参阅本节末尾的NOtes。
  • DATA_FREE :已分配但未使用的字节数。

    已分配但未使用的字节数。

    InnoDB表报告表所属的表空间的可用空间。 对于位于共享表空间中的表,这是共享表空间的可用空间。 如果您使用多个表空间并且该表具有自己的表空间,则可用空间仅用于该表。 可用空间表示完全空闲的区域中的字节数减去安全边界。 即使可用空间显示为0,只要不需要分配新的扩展区,就可以插入行。

    对于NDB群集,DATA_FREE显示磁盘上为磁盘数据表或片段分配但未使用的空间。 (DATA_LENGTH列报告内存中数据资源使用情况。)

    对于分区表,此值仅为估计值,可能不完全正确。 在这种情况下获取此信息的更准确方法是查询INFORMATION_SCHEMA PARTITIONS表,如下例所示:

    mysql> select sum(data_free) from information_schema.partitions where table_schema='test' and table_name='tp';
    +----------------+
    | sum(data_free) |
    +----------------+
    | 0 |
    +----------------+
    1 row in set (0.00 sec)
  • AUTO_INCREMENT :AUTO_INCREMENT的下一个值

  • CREATE_TIME :创建表的时间
  • UPDATE_TIME :上次更新数据文件时。 对于某些存储引擎,此值为NULL。 例如,InnoDB在其系统表空间中存储多个表,并且数据文件时间戳不适用。 即使每个InnoDB表在单独的.ibd文件中使用每个表文件模式,更改缓冲也会延迟写入数据文件,因此文件修改时间与上次插入,更新或删除的时间不同。 对于MyISAM,使用数据文件时间戳; 但是,在Windows上,更新不会更新时间戳,因此值不准确。

    UPDATE_TIME显示在未分区的InnoDB表上执行的最后一次UPDATE,INSERT或DELETE的时间戳值。 对于MVCC,时间戳值反映COMMIT时间,该时间被视为最后更新时间。 重新启动服务器或从InnoDB数据字典缓存中逐出表时,时间戳不会保留。

    UPDATE_TIME列还显示分区的InnoDB表的此信息。
  • CHECK_TIME :上次检查表时。 此时并非所有存储引擎都更新,在这种情况下,值始终为NULL。

    对于分区的InnoDB表,CHECK_TIME始终为NULL。
  • TABLE_COLLATION:表默认排序规则。输出未显式列出表默认字符集,但排序规则名称以字符集名称开头。
  • CHECKSUM :实时校验和值(如果有)。
  • CREATE_OPTIONS :CREATE TABLE使用的额外选项。 执行CREATE TABLE时的原始选项将保留,此处报告的选项可能与活动表设置和选项不同。

    如果表已分区,则CREATE_OPTIONS显示已分区。 它还显示在创建或更改每个表的文件表空间时指定的ENCRYPTION选项。
  • TABLE_COMMENT :创建表时使用的注释(或有关MySQL无法访问表信息的信息)。

Notes

  • 对于NDB表,此语句的输出显示AVG_ROW_LENGTH和DATA_LENGTH列的适当值,但不考虑BLOB列。

  • 对于NDB表,DATA_LENGTH仅包括存储在主存储器中的数据; MAX_DATA_LENGTH和DATA_FREE列适用于磁盘数据。

  • 对于NDB Cluster Disk Data表,MAX_DATA_LENGTH显示为磁盘数据表或片段的磁盘部分分配的空间。 (DATA_LENGTH列报告内存中数据资源使用情况。)

  • 对于MEMORY表,DATA_LENGTH,MAX_DATA_LENGTH和INDEX_LENGTH值近似于实际分配的内存量。分配算法大量保留内存以减少分配操作的数量。

  • 对于视图,除了TABLE_NAME指示视图名称和TABLE_COMMENT表示VIEW之外,所有TABLES列都为NULL。

  • 表信息也可以从SHOW TABLE STATUS和SHOW TABLES语句中获得。请参见“SHOW TABLE STATUS语法”和“SHOW TABLES语法”。以下语句是等价的:

SELECT
TABLE_NAME, ENGINE, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH,
DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT,
CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, CHECKSUM,
CREATE_OPTIONS, TABLE_COMMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'test'; +------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------------+
| TABLE_NAME | ENGINE | VERSION | ROW_FORMAT | TABLE_ROWS | AVG_ROW_LENGTH | DATA_LENGTH | MAX_DATA_LENGTH | INDEX_LENGTH | DATA_FREE | AUTO_INCREMENT | CREATE_TIME | UPDATE_TIME | CHECK_TIME | TABLE_COLLATION | CHECKSUM | CREATE_OPTIONS | TABLE_COMMENT |
+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------------+
| account | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 16384 | 0 | NULL | 2018-08-09 17:03:41 | NULL | NULL | utf8mb4_general_ci | NULL | | |
| t | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 0 | 0 | NULL | 2018-08-10 16:51:11 | NULL | NULL | utf8mb4_general_ci | NULL | | |
| t1 | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2018-08-15 10:06:03 | NULL | NULL | utf8mb4_general_ci | NULL | | |
| t3 | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 32768 | 0 | NULL | 2018-08-15 10:06:14 | NULL | NULL | utf8mb4_general_ci | NULL | | |
| tp | InnoDB | 10 | Dynamic | 0 | 0 | 65536 | 0 | 0 | 0 | NULL | 2018-08-15 11:11:29 | NULL | NULL | utf8mb4_general_ci | NULL | partitioned | |
| ts | InnoDB | 10 | Dynamic | 0 | 0 | 98304 | 0 | 0 | 0 | NULL | 2018-08-15 11:09:38 | NULL | NULL | utf8mb4_general_ci | NULL | partitioned | |
+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------------+
6 rows in set (0.03 sec) mysql> show table status from test;
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
| account | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 16384 | 0 | NULL | 2018-08-09 17:03:41 | NULL | NULL | utf8mb4_general_ci | NULL | | |
| t | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 0 | 0 | NULL | 2018-08-10 16:51:11 | NULL | NULL | utf8mb4_general_ci | NULL | | |
| t1 | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2018-08-15 10:06:03 | NULL | NULL | utf8mb4_general_ci | NULL | | |
| t3 | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 32768 | 0 | NULL | 2018-08-15 10:06:14 | NULL | NULL | utf8mb4_general_ci | NULL | | |
| tp | InnoDB | 10 | Dynamic | 0 | 0 | 65536 | 0 | 0 | 0 | NULL | 2018-08-15 11:11:29 | NULL | NULL | utf8mb4_general_ci | NULL | partitioned | |
| ts | InnoDB | 10 | Dynamic | 0 | 0 | 98304 | 0 | 0 | 0 | NULL | 2018-08-15 11:09:38 | NULL | NULL | utf8mb4_general_ci | NULL | partitioned | |
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
6 rows in set (0.00 sec)

以下语句是等价的:

mysql> select TABLE_NAME, TABLE_TYPE FROM INFORMATION_SCHEMA.TABLES where table_schema='test';
+------------+------------+
| TABLE_NAME | TABLE_TYPE |
+------------+------------+
| account | BASE TABLE |
| t | BASE TABLE |
| t1 | BASE TABLE |
| t3 | BASE TABLE |
| tp | BASE TABLE |
| ts | BASE TABLE |
+------------+------------+
6 rows in set (0.00 sec) mysql> show full tables from test;
+----------------+------------+
| Tables_in_test | Table_type |
+----------------+------------+
| account | BASE TABLE |
| t | BASE TABLE |
| t1 | BASE TABLE |
| t3 | BASE TABLE |
| tp | BASE TABLE |
| ts | BASE TABLE |
+----------------+------------+
6 rows in set (0.00 sec)

24. TABLES的更多相关文章

  1. Mysql元数据分析

    Mysql元数据分析 @(基础技术) 一.information_schema库 information_schema库中的表,保存的是Mysql的元数据. 官网元数据表介绍 InnoDB相关的表介绍 ...

  2. sqlmap+DWAV测试实战(一)

    root@kali-yaming:~# sqlmap -u "http://172.18.225.39/vulnerabilities/sqli/?id=1&Submit=Submi ...

  3. [MySQL Reference Manual] 24 MySQL sys框架

    24 MySQL sys框架 24 MySQL sys框架 24.1 sys框架的前提条件 24.2 使用sys框架 24.3 sys框架进度报告 24.4 sys框架的对象 24.4.1所有sys下 ...

  4. Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Population]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  5. Codeforces Round #342 (Div. 2) C. K-special Tables(想法题)

    传送门 Description People do many crazy things to stand out in a crowd. Some of them dance, some learn ...

  6. flush tables 好危险啊

    请看图 +----+------+-----------+------+------------+------+-------------------------+------------------ ...

  7. codeforces 625C K-special Tables

    C. K-special Tables time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  8. HOW MYSQL USES INTERNAL TEMPORARY TABLES

    HOW MYSQL USES INTERNAL TEMPORARY TABLES Table of Contents [hide] 1)UNION queries 2)Some views 3)SQL ...

  9. mysqldump备份数据库时出现when using LOCK TABLES

    用mysqldump备份数据库时,如果出现when using LOCK TABLES,解决办法是加上 --skip-lock-tables 例如: 用mysqldump备份数据库时出现 29: Fi ...

随机推荐

  1. 洛谷 P4719 【模板】动态dp【动态dp】

    是动态dp的板子 大致思想就是用g[u]来表示不包含重链转移的dp值,然后用线段树维护重链,这样线段树的根就相当于这条重链的top的真实dp值 每次修改的时候,修改x点会影响到x到根的真实dp值,但是 ...

  2. vim normal 模式下L键

    vim normal 模式下L键总是到一行的最后一个字符,而不是最后一个字符的下一个字符,这样进入插入模式,就还得往右移动一下,就很费劲? 怎么解决 更新: a键进入插入即可

  3. Hadoop Hive概念学习系列之HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)

    Hive总结(七)Hive四种数据导入方式 (强烈建议去看) Hive几种数据导出方式 https://www.iteblog.com/archives/955 (强烈建议去看) 把MySQL里的数据 ...

  4. docker监控之cadvisor

    docker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --vo ...

  5. Codeforces Round #544 (Div. 3) D. Zero Quantity Maximization

    链接:https://codeforces.com/contest/1133/problem/D 题意: 给两个数组a,b. 同时ci = ai * d + bi. 找到一个d使c数组中的0最多. 求 ...

  6. php输出中文字符

    中文字符不可以使用imagettftext()函数在图片中直接输出,如果要输出中文字符,需要先使用iconv()函数对中文字符进行编码,语法格式如下:string iconv ( string $in ...

  7. poj3252Round Numbers

    链接 也算是组合 以前按组合做过一次 忘记怎么做的了 这次按dp写的 dp[i][j][g][k] 表示第i位为k(0|1)而且有j个1,g个0的情况数 貌似写的麻烦了...这一类的题,进行逐位计算就 ...

  8. Java基础50题test4—分解质因数

    [分解质因数] 题目:将一个正整数分解质因数.例如:输入 90,打印出 90=2*3*3*5. 程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成: (1)如果这个质数恰 ...

  9. Java报表之JFreeChart

    一.JFreeChart简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications,servlets以及JSP等使用所设计. JFre ...

  10. (转)Spring+JDBC组合开发

    http://blog.csdn.net/yerenyuan_pku/article/details/52882435 搭建和配置Spring与JDBC整合的环境 使用Spring+JDBC集成步骤如 ...