MySQL维护命令集锦--查看表的状态(show table status)

查看表的引擎类型等状态信息:
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称为视图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值