如何查看表的相关信息
在文件系统中,MySQL将每个数据库(也被称为schema)保存为数据目录下的一个子目录。在创建表的时候,MySQL会在数据库子目录下创建一个和表同名的 .frm 文件对表的定义。例如,创建一个名为 mytable 的表,MySQL会在 mytable.frm 文件中保存对该表的定义。
通常,我们可以使用 show table status 命令来显示表的相关信息。(MySQL 5.0 + 的版本,也可以查看 INFOMATION_SCHEMA 中对应的表的信息)。
例如,对于MySQL数据库中的 user 表:
mysql> show table status like 'user' \G;
*************************** 1. row ***************************
Name: user
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 14
Avg_row_length: 63
Data_length: 952
Max_data_length: 281474976710655
Index_length: 2048
Data_free: 64
Auto_increment: NULL
Create_time: 2012-12-25 14:23:08
Update_time: 2015-08-11 11:17:42
Check_time: NULL
Collation: utf8_bin
Checksum: NULL
Create_options:
Comment: Users and global privileges
1 row in set (0.01 sec)
下面简单介绍一下每行的含义:
Name
表名。
Engine
表的存储引擎。
Row_format
行的格式,对于MyISAM表,可选的值为Dynamic、Fixed、Compressed。
- Dynamic,表示行的长度是可变的,一般包含可变长度的字段,如varchar、blob等。
- Fixed,行的长度是固定的,只包含固定长短的列。
- Compressed,只在压缩表中出现,表示是被压缩的。
Rrows
表中行数,对于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
使用check table命令或者muisamchk 工具最后一次检查表的时间。
Collation
表的默认字符集和字符列排序规则。
Checksum
如果启用,保存的是整个表的实时校验和。
Create_options
创建表时指定的其他选项。
Comment
该列包含了一些其他的额外信息。对于MyISAM表,保存的是在表创建的时候附带的注释。对于InnoDB表,该值保存的是InnoDB表空间的剩余空间信息。如果是一个视图,该列将会包含『VIEW』字样。