doris/clickhouse常用sql

一、doris常用SQL

1、doris统计数据库的总大小(单位:MB)

sql 复制代码
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;
相关推荐
roman_日积跬步-终至千里17 小时前
【LangGraph4j】LangGraph4j 核心概念与图编排原理
java·服务器·数据库
汇智信科17 小时前
打破信息孤岛,重构企业效率:汇智信科企业信息系统一体化运营平台
数据库·重构
野犬寒鸦17 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
WHD30617 小时前
苏州数据库(SQL Oracle)文件损坏修复
hadoop·sql·sqlite·flume·memcached
晚霞的不甘18 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
市场部需要一个软件开发岗位19 小时前
JAVA开发常见安全问题:纵向越权
java·数据库·安全
海奥华219 小时前
mysql索引
数据库·mysql
2601_9495936520 小时前
深入解析CANN-acl应用层接口:构建高效的AI应用开发框架
数据库·人工智能
javachen__20 小时前
mysql新老项目版本选择
数据库·mysql
Dxy123931021620 小时前
MySQL如何高效查询表数据量:从基础到进阶的优化指南
数据库·mysql