一、查看表状态

可以使用SHOW TABLE STATUS 命令(在MySQL 5.0以后的版本中,也可以查询INFORMATION SCHEMA中对应的表)显示表的相关信息

mysql> show table status like 'posts' \G;
*************************** 1. row ***************************
           Name: posts
         Engine: InnoDB
        Version: 10
     Row_format: Dynamic
           Rows: 358
 Avg_row_length: 183
    Data_length: 65536
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: 439
    Create_time: 2018-11-10 17:21:37
    Update_time: 2019-08-27 19:03:02
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options: 
        Comment: 
1 row in set (0.00 sec)

Name

  • 表名

Engine

  • 表的存储引擎类型。在旧版本中,该列的名字叫Type,而不是Engine

Row_format

  • 行的格式。对于MyISAM表,可选的值为DynamicFixed 或者Compressed
    Dynamic的行长度是可变的,一般包含可变长度的字段,如VARCHARBL0B
    Fixed 的行长度则是固定的,只包含固定长度的列,如CHARINTEGER
    Compressed 的行则只在压缩表中存在

Rows

  • 表中的行数。对于MyISAM和其他一-些存储引擎,该值是精确的,但对于InnoDB,该值是估计值

Avg_row_Length

  • 平均每行包含的字节数

Data_Length

  • 表数据的大小(以字节为单位)

Max_data_Length

  • 表数据的最大容量,该值和存储引擎有关

Index_length

  • 索引的大小(以字节为单位)

Data_free

  • 对于MyISAM表,表示已分配但目前没有使用的空间。这部分空间包括了之前删除的行,以及后续可以被INSERT利用到的空间。

Auto_increment

  • 下一个AUTO INCREMENT的值

Create_time

  • 表的创建时间

Update_time

  • 表数据的最后修改时间

Check_time

  • 使用CKECK TABLE命令或者myisamchk工具最后一次检查表的时间

Collation

  • 表的默认字符集和字符列排序规则

Checksum

  • 如果启用,保存的是整个表的实时校验和

Create_options

  • 创建表时指定的其他选项

Comment

  • 该列包含了一些其他的额外信息。对于MyISAM表,保存的是表在创建时带的注释。
    对于InnoDB表,则保存的是InnoDB表空间的剩余空间信息。
    如果是一个视图,则该列包含“VIEW” 的文本字样