一、doris常用SQL
1、doris統計數據庫的總大小(單位:MB)?
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查詢所有數據庫大小排名(從大到小)
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)
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、整個數據庫的總行數 & 總大小:
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 類型的表
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、統計所有表的原始數據大小(未壓縮)
SELECTdatabase,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、統計所有表的壓縮后磁盤大小
SELECTdatabase,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、統計所有表的行數及壓縮后大小
SELECTdatabase,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;