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;
    

results matching ""

    No results matching ""