Mysql统计信息
使用 SHOW TABLE STATUS 命令
直接查看表的存储信息:
SHOW TABLE STATUS LIKE 'your_table_name'; -- 查看指定表
SHOW TABLE STATUS FROM your_database_name; -- 查看整个数据库
- Rows:数据行数(InnoDB 为近似值)。
- Data_length:数据大小(字节)。
- Index_length:索引大小(字节)。
- Data_free:未使用的碎片空间(字节)。
通过information_schema.TABLES
SELECT
TABLE_SCHEMA AS '数据库名',
TABLE_NAME AS '表名',
TABLE_ROWS AS '数据行数(近似值)',
ROUND(DATA_LENGTH/1024/1024, 2) AS '数据大小(MB)',
ROUND(INDEX_LENGTH/1024/1024, 2) AS '索引大小(MB)',
ROUND((DATA_LENGTH + INDEX_LENGTH)/1024/1024, 2) AS '总大小(MB)'
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'test' -- 替换为你的数据库名
ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
查看表中占用的页面数
select * from mysql.innodb_table_stats where table_name = 'single_table';
- n_rows: 表中记录条数
- clustered_index_size: 聚集索引占用页面数量
- sum_of_other_index_size:其他索引占用的页面数量
索引统计信息
select * from mysql.innodb_index_stats;