查看数据库各个表的大小,并由小到大排序:
/usr/local/mysql/bin/mysql -uroot -p123 -e "use DABABASE_NAME;show tables;" | sed '1d' | while read line; do /usr/local/mysql/bin/mysql -uroot -p123 -e "SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA='DATABASE_NAME' AND TABLE_NAME='$line'"; done | grep -v "TABLE_NAME"  | awk '{print $1"\t"$2}' | sort -k2n


想知道MySQL数据库中每个表占用的空间、表记录的行数的话,打开information_schema 数据库。在该库中有一个 TABLES 表,这个表主要字段分别是:
TABLE_SCHEMA : 数据库名
TABLE_NAME:表名
ENGINE:所使用的存储引擎
TABLES_ROWS:记录数
DATA_LENGTH:数据大小
INDEX_LENGTH:索引大小