如何查看数据库的哪个表占有数据最大?

119 阅读1分钟

9.3 postgres

抱歉对于 PostgreSQL 版本 9.3,pg_total_relation_size 函数可能不适用。你可以尝试以下 SQL 查询,该查询使用 pg_total_relation_sizepg_relation_size 函数的组合:

SELECT schemaname,
       tablename,
       pg_size_pretty(pg_total_relation_size(schemaname || '.' || tablename)) AS total_size,
       pg_size_pretty(pg_relation_size(schemaname || '.' || tablename)) AS table_size
FROM pg_tables
ORDER BY pg_total_relation_size(schemaname || '.' || tablename) DESC;

这个查询返回每个表的模式名称(schemaname)、表名称(tablename)、总大小(total_size)和表大小(table_size),以易读的格式(例如 KB、MB)显示。

mysql 查看数据库,各个表数据的占比

SELECT
	table_schema AS `Database`,
	table_name AS `Table`,
	table_rows AS `Rows`,
	ROUND( data_length / 1024 / 1024, 2 ) AS `Data_MB`,
	ROUND( index_length / 1024 / 1024, 2 ) AS `Index_MB`,
	ROUND(( data_length + index_length ) / 1024 / 1024, 2 ) AS `Total_MB`,
	ROUND(( data_length + index_length ) / data_free * 100, 2 ) AS `Data_Free_Pct`
FROM
	information_schema.TABLES
ORDER BY
	table_schema,
	table_name;