在 MySQL 数据库中,有一个内置的库叫做 information_schema,该数据库中的 tables 表包含了数据库中所有表的基本信息,tables 表结构如下:
下面介绍几个主要关键字段:
- TABL_SCHEMA:表所属的数据库名
- TABLE_NAME:表名
- TABLE_ROWS:表行数
- DATA_LENGTH:数据总大小
- INDEX_LENGTH:索引总大小
- DATA_FREE:磁盘碎片大小
示例:
SELECT
table_schema,
TABLE_NAME,
CONCAT(TRUNCATE(SUM(DATA_LENGTH)/1024/1024,2),'MB') AS data_size,
CONCAT(TRUNCATE(SUM(DATA_FREE)/1024/1024,2),'MB') AS data_free,
CONCAT(TRUNCATE(SUM(INDEX_LENGTH)/1024/1024,2),'MB') AS index_size,
CONCAT(TRUNCATE(SUM(DATA_LENGTH)/1024, 2)/TABLE_ROWS,'KB') AS record_size
FROM information_schema.tables
WHERE TABLE_SCHEMA='database' AND table_name='table_name';