You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看DuckDB中各表存储大小及估算文件内表占比?

查看DuckDB表存储大小及计算占比的操作方法

一、查看所有表的存储详情

连接到目标DuckDB文件后,直接用内置的duckdb_tables()函数查询表的存储数据,这是最直接的方式:

-- 查看main schema下所有表的存储信息
SELECT
  table_name,
  total_bytes AS uncompressed_size_bytes, -- 未压缩的原始数据大小
  compressed_bytes AS actual_storage_bytes, -- 磁盘上实际占用的压缩后大小
  ROUND(compressed_bytes::FLOAT / total_bytes * 100, 2) AS compression_rate_percent
FROM duckdb_tables()
WHERE table_schema = 'main';

说明:如果数据库使用了自定义schema,去掉WHERE条件或修改table_schema的值即可。

二、计算各表占750MB数据库文件的存储占比

已知数据库文件总大小为750MB,先将其转换为字节(750 * 1024 * 1024 = 786432000),再结合表的实际存储大小计算占比:

SELECT
  table_name,
  ROUND(compressed_bytes::FLOAT / (1024*1024), 2) AS size_mb,
  ROUND(compressed_bytes::FLOAT / 786432000 * 100, 2) AS storage_percent
FROM duckdb_tables()
WHERE table_schema = 'main'
ORDER BY storage_percent DESC;

注意:各表compressed_bytes的总和可能略小于750MB,因为DuckDB文件还包含元数据、事务日志等非表存储开销,属于正常现象。

额外验证

如果想确认数据库文件的实际总大小,可执行:

PRAGMA database_size;

返回结果可与你提供的750MB做核对,确保计算基准准确。

内容的提问来源于stack exchange,提问作者Anna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 00:39:55