查看表的引擎类型等状态信息:
show table status from <db_name>
# mysql -h 192.168.1.250 -uroot -p -e "show table status from upload\G"|grep -A1 -B1 -i name
...
*************************** 30. row ***************************
Name: ac_upload_system_announce
Engine: MyISAM
--
*************************** 31. row ***************************
Name: ac_upload_tag
Engine: InnoDB
--
*************************** 32. row ***************************
Name: ac_upload_user
Engine: InnoDB
--
*************************** 33. row ***************************
Name: ac_upload_user_account
Engine: InnoDB
...
下面这句能看到某个表的所有状态信息:
# mysql -h 192.168.1.250 -uadmin -p -e "show table status from upload\G"|grep -i -B1 -A17 '\<ac_upload_user\>'
*************************** 32. row ***************************
Name: ac_upload_user
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 118754
Avg_row_length: 269
Data_length: 32047104
Max_data_length: 0
Index_length: 7340032
Data_free: 0
Auto_increment: 173874
Create_time: 2009-03-06 04:31:59
Update_time: NULL
Check_time: NULL
Collation: utf8_bin
Checksum: NULL
Create_options:
Comment: InnoDB free: 130048 kB
# mysql -uroot -p -e "show table status from upload like 'ac_upload_pm'\G"
*************************** 1. row ***************************
Name: ac_upload_pm
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 434732
Avg_row_length: 1162
Data_length: 505249200
Max_data_length: 281474976710655
Index_length: 4463616
Data_free: 0
Auto_increment: 469941
Create_time: 2008-12-18 14:49:58
Update_time: 2008-12-25 01:08:05
Check_time: NULL
Collation: utf8_bin
Checksum: NULL
Create_options:
Comment:
命令介绍:如果是myisam存储引擎,那么行数是精确的。如果是inndob引擎,Max_data_length的值总显示为0,不知道为什么。一个公式:
Data_length/Rows = Avg_row_length
# myisamchk -dv /var/lib/mysql/upload/ac_upload_pm
MyISAM file: /var/lib/mysql/upload/ac_upload_pm
Record format: Packed
Character set: utf8_general_ci (33)
File-version: 1
Creation time: 2008-12-18 6:49:58
Status: changed
Auto increment key: 1 Last value: 469940
Data records: 434732 Deleted blocks: 0
Datafile parts: 434732 Deleted data: 0
Datafile pointer (bytes): 6 Keyfile pointer (bytes): 5
Datafile length: 505249200 Keyfile length: 4463616
Max datafile length: 281474976710654 Max keyfile length: 1125899906841599
Recordlength: 643
table description:
Key Start Len Index Type Rec/key Root Blocksize
1 2 4 unique long 1 3322880 1024
注意:
Max datafile length:最大数据尺寸(.MYD) 256TB
Max keyfile length: 最大索引尺寸(.MYI) 1PB
--------------------------------------------------------------------------------
命令参数解释:
SHOW TABLE STATUS [FROMdb_name] [LIKE 'pattern']
SHOW TABLE STATUS的性质与SHOW TABLE类似,不过,可以提供每个表的大量信息。您也可以使用mysqlshow --statusdb_name命令得到此清单。
本语句也显示视图信息。
对于NDB Cluster表,本语句的输出显示Avg_row_length和Data_length列的适当值,不过BLOB列没有被考虑进来。另外,复制数量在Comment列中显示(作为number_of_replicas)。
SHOW TABLE STATUS会返回以下字段:
Name
表的名称。
Engine
表的存储引擎。在MySQL 4.1.2之前,本值被标记为Type。请参见第15章:存储引擎和表类型。
Version
表的.frm文件的版本号。
Row_format
行存储格式(Fixed,Dynamic,Compressed,Redundant,Compact)。InnoDB表的格式被报告为Redundant或Compact。
Rows
行的数目。部分存储引擎,如MyISAM,存储精确的数目。
对于其它存储引擎,比如InnoDB,本值是一个大约的数,与实际值相差可达40到50%。在这些情况下,使用SELECT COUNT(*)来获得准确的数目。
对于在INFORMATION_SCHEMA数据库中的表,Rows值为NULL。
Avg_row_length
平均的行长度。
Data_length
数据文件的长度。
Max_data_length
数 据文件的最大长度。如果给定了数据指针的大小,这是可以被存储在表中的数据的字节总数。mysql5以后的版本所能支持的最大存储容量是非常大的,上面的 列子为256TB。这时表的最大存储容量主要受限于OS了。不过到现在,Linux ext3 fs支持单个最大文件尺寸2T了,所以基本这个问题不必过于担心了。存储引擎是innodb的话,这个值在show table status显示的值总是为0,不知道为什么。
Index_length
索引文件的长度。
Data_free
被整序,但是未使用的字节的数目。
Auto_increment
下一个AUTO_INCREMENT值。
Create_time
什么时候表被创建。
Update_time
什么时候数据文件被最后一次更新。
Check_time
什么时候表被最后一次检查。不是所有的存储引擎此时都更新,在此情况下,值为NULL。
Collation
表的字符集和整序。
Checksum
活性校验和值。
Create_options
和CREATE TABLE同时使用的额外选项。
Comment
创建表时使用的评注(或者有关为什么MySQL可以访问表信息的说明)。
在表评注中,InnoDB表报告表所属的表空间的空闲空间。对于一个位于共享表空间中的表,这是共享表空间中的空闲空间。如果您正在使用多个表空间,并且该表有自己的表空间,则空闲空间只用于此表。
对于MEMORY (HEAP)表,Data_length, Max_data_length和Index_length值近似于被整序的存储器的实际值。整序算法预留了大量的存储器,以减少整序操作的数量。
对于视图,由SHOW TABLE STATUS显示的所有字段均为NULL。例外情况是Name指示为视图名称同时Comment称为视图。
show table status from <db_name>
# mysql -h 192.168.1.250 -uroot -p -e "show table status from upload\G"|grep -A1 -B1 -i name
...
*************************** 30. row ***************************
Name: ac_upload_system_announce
Engine: MyISAM
--
*************************** 31. row ***************************
Name: ac_upload_tag
Engine: InnoDB
--
*************************** 32. row ***************************
Name: ac_upload_user
Engine: InnoDB
--
*************************** 33. row ***************************
Name: ac_upload_user_account
Engine: InnoDB
...
下面这句能看到某个表的所有状态信息:
# mysql -h 192.168.1.250 -uadmin -p -e "show table status from upload\G"|grep -i -B1 -A17 '\<ac_upload_user\>'
*************************** 32. row ***************************
Name: ac_upload_user
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 118754
Avg_row_length: 269
Data_length: 32047104
Max_data_length: 0
Index_length: 7340032
Data_free: 0
Auto_increment: 173874
Create_time: 2009-03-06 04:31:59
Update_time: NULL
Check_time: NULL
Collation: utf8_bin
Checksum: NULL
Create_options:
Comment: InnoDB free: 130048 kB
# mysql -uroot -p -e "show table status from upload like 'ac_upload_pm'\G"
*************************** 1. row ***************************
Name: ac_upload_pm
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 434732
Avg_row_length: 1162
Data_length: 505249200
Max_data_length: 281474976710655
Index_length: 4463616
Data_free: 0
Auto_increment: 469941
Create_time: 2008-12-18 14:49:58
Update_time: 2008-12-25 01:08:05
Check_time: NULL
Collation: utf8_bin
Checksum: NULL
Create_options:
Comment:
命令介绍:如果是myisam存储引擎,那么行数是精确的。如果是inndob引擎,Max_data_length的值总显示为0,不知道为什么。一个公式:
Data_length/Rows = Avg_row_length
# myisamchk -dv /var/lib/mysql/upload/ac_upload_pm
MyISAM file: /var/lib/mysql/upload/ac_upload_pm
Record format: Packed
Character set: utf8_general_ci (33)
File-version: 1
Creation time: 2008-12-18 6:49:58
Status: changed
Auto increment key: 1 Last value: 469940
Data records: 434732 Deleted blocks: 0
Datafile parts: 434732 Deleted data: 0
Datafile pointer (bytes): 6 Keyfile pointer (bytes): 5
Datafile length: 505249200 Keyfile length: 4463616
Max datafile length: 281474976710654 Max keyfile length: 1125899906841599
Recordlength: 643
table description:
Key Start Len Index Type Rec/key Root Blocksize
1 2 4 unique long 1 3322880 1024
注意:
Max datafile length:最大数据尺寸(.MYD) 256TB
Max keyfile length: 最大索引尺寸(.MYI) 1PB
--------------------------------------------------------------------------------
命令参数解释:
SHOW TABLE STATUS [FROMdb_name] [LIKE 'pattern']
SHOW TABLE STATUS的性质与SHOW TABLE类似,不过,可以提供每个表的大量信息。您也可以使用mysqlshow --statusdb_name命令得到此清单。
本语句也显示视图信息。
对于NDB Cluster表,本语句的输出显示Avg_row_length和Data_length列的适当值,不过BLOB列没有被考虑进来。另外,复制数量在Comment列中显示(作为number_of_replicas)。
SHOW TABLE STATUS会返回以下字段:
Name
表的名称。
Engine
表的存储引擎。在MySQL 4.1.2之前,本值被标记为Type。请参见第15章:存储引擎和表类型。
Version
表的.frm文件的版本号。
Row_format
行存储格式(Fixed,Dynamic,Compressed,Redundant,Compact)。InnoDB表的格式被报告为Redundant或Compact。
Rows
行的数目。部分存储引擎,如MyISAM,存储精确的数目。
对于其它存储引擎,比如InnoDB,本值是一个大约的数,与实际值相差可达40到50%。在这些情况下,使用SELECT COUNT(*)来获得准确的数目。
对于在INFORMATION_SCHEMA数据库中的表,Rows值为NULL。
Avg_row_length
平均的行长度。
Data_length
数据文件的长度。
Max_data_length
数 据文件的最大长度。如果给定了数据指针的大小,这是可以被存储在表中的数据的字节总数。mysql5以后的版本所能支持的最大存储容量是非常大的,上面的 列子为256TB。这时表的最大存储容量主要受限于OS了。不过到现在,Linux ext3 fs支持单个最大文件尺寸2T了,所以基本这个问题不必过于担心了。存储引擎是innodb的话,这个值在show table status显示的值总是为0,不知道为什么。
Index_length
索引文件的长度。
Data_free
被整序,但是未使用的字节的数目。
Auto_increment
下一个AUTO_INCREMENT值。
Create_time
什么时候表被创建。
Update_time
什么时候数据文件被最后一次更新。
Check_time
什么时候表被最后一次检查。不是所有的存储引擎此时都更新,在此情况下,值为NULL。
Collation
表的字符集和整序。
Checksum
活性校验和值。
Create_options
和CREATE TABLE同时使用的额外选项。
Comment
创建表时使用的评注(或者有关为什么MySQL可以访问表信息的说明)。
在表评注中,InnoDB表报告表所属的表空间的空闲空间。对于一个位于共享表空间中的表,这是共享表空间中的空闲空间。如果您正在使用多个表空间,并且该表有自己的表空间,则空闲空间只用于此表。
对于MEMORY (HEAP)表,Data_length, Max_data_length和Index_length值近似于被整序的存储器的实际值。整序算法预留了大量的存储器,以减少整序操作的数量。
对于视图,由SHOW TABLE STATUS显示的所有字段均为NULL。例外情况是Name指示为视图名称同时Comment称为视图。