当前位置:首页 > 行业动态 > 正文

如何高效查询MySQL数据库中各库表的实际占用空间大小?

+++++++
| Database         | Size     | Tables     | Rows    | Avg_row_length | Total_rows     |
+++++++
| your_database    | 12345678 | 10         | 500000  | 150            | 7500000        |
| another_database | 87654321 | 5          | 100000  | 200            | 1000000        |
+++++++

介绍展示了两个数据库的详细信息:

Database:数据库名称。

Size:数据库的总大小,以字节为单位。

如何高效查询MySQL数据库中各库表的实际占用空间大小?

Tables:数据库中表的数量。

Rows:数据库中所有表的行数总和。

如何高效查询MySQL数据库中各库表的实际占用空间大小?

Avg_row_length:所有表的平均行长度,以字节为单位。

Total_rows:数据库中所有表的总行数。

如何高效查询MySQL数据库中各库表的实际占用空间大小?

数据仅为示例,实际数据将根据您的数据库内容而有所不同,要获取这些信息,您可以使用MySQL的内置函数和查询,

SELECT 
    table_schema ASDatabase,
    round(((data_length + index_length) / 1024 / 1024), 2) ASSize (MB),
    COUNT(*) ASTables,
    SUM(ROUND(row_count / 1024 / 1024, 2)) ASRows (MB),
    AVG(ROUND(avg_row_length / 1024, 2)) ASAvg_row_length (KB),
    SUM(ROUND(row_count, 0)) ASTotal_rows
FROM 
    information_schema.TABLES
WHERE 
    table_schema NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys')
GROUP BY 
    table_schema;

此查询会从information_schema.TABLES表中提取所需信息,并排除一些系统数据库,您可以根据需要调整此查询来符合您的具体需求。