WithCoderWithCoderWithCoder

MySQL查看数据库和数据表容量大小

    在使用MySQL时,我们有时候需要统计数据库或数据表的大小,以便后期优化。本文介绍如何查看MySQL数据库或数据表的数据容量大小。

     1. 查询所有数据库记录数和容量

SELECT
	table_schema AS '数据库',
	SUM(table_rows) AS '记录数',
	SUM(TRUNCATE(data_length/1024/1024, 2)) AS '数据容量(MB)',
	SUM(TRUNCATE(index_length/1024/1024, 2)) AS '索引容量(MB)'
FROM information_schema.tables
	GROUP BY table_schema
	ORDER BY SUM(data_length) DESC, SUM(index_length) DESC;

    执行以上sql,查询结果会列出所有数据库(每个库一条记录)的记录数、数据容量和索引容量,如下图:

    1-200603210U1513.png

    2. 查询指定数据库记录数和容量

    在上面的基础上,很容易查询单个数据库的记录数和容量,以查询 mysql 库的记录为例,语句如下:

SELECT
	table_schema AS '数据库',
	SUM(table_rows) AS '记录数',
	SUM(TRUNCATE(data_length/1024/1024, 2)) AS '数据容量(MB)',
	SUM(TRUNCATE(index_length/1024/1024, 2)) AS '索引容量(MB)'
FROM information_schema.tables
WHERE table_schema='mysql';

     查询结果如下图,展示单个数据库的记录数、数据容量和索引容量:

    1-200603211511D3.png

    3. 查询所有数据库每个表的记录数和容量

SELECT
table_schema AS '数据库',
table_name AS '表名',
table_rows AS '记录数',
TRUNCATE(data_length/1024/1024, 2) AS '数据容量(MB)',
TRUNCATE(index_length/1024/1024, 2) AS '索引容量(MB)'
FROM information_schema.tables
ORDER BY data_length DESC, index_length DESC;

    查询结果如下图,展示每个库中每个表的记录数、数据容量和索引容量:

    1-200603222405M3.png

    4. 查询指定数据库每个表的记录数和容量

    同样,在第3步的基础之上,查询指定库中每个表的记录数和容量,就比较简单。以查询 mysql 库为例,语句如下:

SELECT
	table_schema AS '数据库',
	table_name AS '表名',
	table_rows AS '记录数',
	TRUNCATE(data_length/1024/1024, 2) AS '数据容量(MB)',
	TRUNCATE(index_length/1024/1024, 2) AS '索引容量(MB)'
FROM information_schema.tables
WHERE table_schema='mysql'
ORDER BY data_length DESC, index_length DESC;

    查询结果如下图:

    1-200603222J3Z0.png

    5. 统计所有数据库的总大小

    最后,有时我们可能需要统计所有库的总大小,这个有前面的知识,就比较简单,直接列出语句如下:

SELECT CONCAT(ROUND(SUM(DATA_LENGTH/1024/1024),2),'MB') AS DATA FROM information_schema.TABLES;

    结果如下所示:

data       
-----------
1795.17MB  ## 所有数据的总大小

欢迎分享交流,转载请注明出处:WithCoder » MySQL查看数据库和数据表容量大小