SELECT
table_schema AS database_name,
ROUND(SUM(data_length) / 1024 / 1024, 2) AS database_size_MB
FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema', 'sys', 'mysql')
GROUP BY table_schema;
2、doris查询所有数据库大小排名(从大到小)
sql复制代码
SELECT
table_schema AS database_name,
ROUND(SUM(data_length) / 1024 / 1024, 2) AS database_size_MB
FROM information_schema.tables
GROUP BY table_schema
ORDER BY database_size_MB DESC;
3、 综合查询某数据库下各表的:表名、行数、大小(MB)
sql复制代码
SELECT
table_name,
table_rows AS row_count,
ROUND(data_length / 1024 / 1024, 2) AS table_size_MB
FROM information_schema.tables
WHERE table_schema = 'your_database'
ORDER BY table_size_MB DESC;
4、整个数据库的总行数 & 总大小:
sql复制代码
SELECT
table_schema AS database_name,
SUM(table_rows) AS total_rows,
ROUND(SUM(data_length) / 1024 / 1024, 2) AS total_size_MB
FROM information_schema.tables
WHERE table_schema = 'your_database'
GROUP BY table_schema;
5、查询数据库中是否存在 AGGREGATE 类型的表
sql复制代码
SELECT
table_schema,
table_name,
engine
FROM information_schema.tables
WHERE engine = 'OLAP'
AND create_statement LIKE '%AGGREGATE KEY%'
AND table_schema = 'your_database';
二、clickhouse常用SQL
1、统计所有表的原始数据大小(未压缩)
sql复制代码
SELECT
database,
name AS table_name,
formatReadableSize(sum(bytes_on_disk)) AS raw_size
FROM system.tables
WHERE database = 'your_database_name' -- 指定数据库名(可选)
GROUP BY database, table_name
ORDER BY sum(bytes_on_disk) DESC;
2、统计所有表的压缩后磁盘大小
sql复制代码
SELECT
database,
name AS table_name,
formatReadableSize(sum(data_compressed_bytes)) AS compressed_size,
formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed_size,
round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100, 2) AS compression_ratio
FROM system.parts
WHERE active -- 仅统计活跃的分区
AND database = 'your_database_name' -- 指定数据库名(可选)
GROUP BY database, table_name
ORDER BY sum(data_compressed_bytes) DESC;
3、统计所有表的行数及压缩后大小
sql复制代码
SELECT
database,
name AS table_name,
formatReadableSize(sum(bytes_on_disk)) AS disk_size,
sum(rows) AS total_rows,
formatReadableSize(sum(data_compressed_bytes)) AS compressed_size,
formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed_size,
round((compressed_size / uncompressed_size) * 100, 2) AS compression_ratio
FROM system.parts
WHERE active -- 仅统计活跃分区(排除临时或已删除的分区)
AND database = 'your_database_name' -- 指定数据库名(可选)
GROUP BY database, table_name
ORDER BY compressed_size DESC;