Это была полезная тема. Это небольшое изменение во втором рецепте OP возвращает только таблицы (без представлений) и упорядочивает возвращенный набор данных по размеру таблицы --- от наибольшего к меньшему:
MySQL
SELECT
TABLE_NAME, table_rows, data_length, index_length,
round(((data_length + index_length) / 1024 / 1024),2) 'Size in MB'
FROM information_schema.TABLES
WHERE table_schema = 'yourSchemaName' and TABLE_TYPE='BASE TABLE'
ORDER BY data_length DESC;
PostGRES : мне нужно было сделать то же самое в PostGRES сегодня, и заимствовать некоторую помощь у этого ответа (и еще одного, который я потерял после закрытия вкладки браузера), это чем я закончил Добавляя его сюда на случай, если это пригодится кому-либо еще.
SELECT
t.tbl table_name,
ct.reltuples row_count,
pg_total_relation_size(t.tbl) size,
pg_size_pretty(pg_total_relation_size(t.tbl)) pretty_size
FROM (
SELECT
table_name tbl
FROM information_schema.tables
WHERE
table_schema = 'public'
AND table_type = 'BASE TABLE'
) t
join (
SELECT
relname, reltuples
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE
nspname NOT IN ('pg_catalog', 'information_schema')
AND relkind='r'
) ct
on t.tbl = ct.relname
order by size desc ;