当前位置: 首页 > article >正文

Pgsql存储占用分析

基础命令

-- 查询表大小
SELECT pg_total_relation_size('table_name');

-- 查询表大小(不带索引)
SELECT pg_table_size('table_name');

-- 查询表索引大小
SELECT pg_indexes_size('table_name');

-- 查询表具体大小
SELECT pg_relation_size('table_name');
SELECT pg_relation_size('table_name', 'fsm');
SELECT pg_relation_size('table_name', 'vm');
SELECT pg_relation_size('table_name', 'init');

-- 查询列大小
SELECT pg_column_size(column_name);

-- 转换人类可读
SELECT pg_size_pretty(pg_relation_size('table_name'));

-- 查询库大小
SELECT pg_database_size(database_name);

-- 查询全库表大小
SELECT table_schema || '.' || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size FROM information_schema.tables ORDER BY pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC;

pg_total_relation_size包含pg_table_size和pg_indexes_size

pg_table_size包含了表的main、fsm、vm和init文件大小,pg_relation_size('table_name')等价pg_relation_size('table_name', 'main')

pg_size_pretty转换人类可读单位

行存储分析

Pg表采用8K最小存储方式,当表中数据不足8K时,整体占用大小仍为8K

当8K占满时,开辟新的8K空间占用,即按8K、16K、24K....逐步扩大占用

列存储分析

Pg采用bit编码标记的方式压缩存储, 具体参考:https://zhuanlan.zhihu.com/p/266942446

1、针对Null,可以做到Null不占用空间

2、varchar和text类型占用一致,只是varchar有长度限制

3、int固定占用8位,而针对10000以内的整数,字符类型一般只占用2-7位,可以考虑字符类型存储,以节省空间

4、数组方式比json方式节省空间

造数据相关命令

-- 清空表数据
truncate table table_name;

-- 迁移数据到新表
insert into new_table select * from old_table;

-- 快速复制数据
insert into table_name select * from table_name;


http://www.kler.cn/a/503402.html

相关文章:

  • C++ STL之容器介绍(vector、list、set、map)
  • 主数据系统建设模式分析
  • 【大厂面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据...本篇介绍为什么self-attention可以堆叠多层,这有什么作用?
  • CNN张量输入形状和特征图
  • 整数和浮点数的存储
  • java小知识点总结
  • AR 在高校实验室安全教育中的应用
  • 基于PHP的校园兼职系统设计和开发
  • 【Vue】Vue组件--上
  • [读书日志]从零开始学习Chisel 第十三篇:Scala的隐式参数与隐式转换(敏捷硬件开发语言Chisel与数字系统设计)
  • OLED显示字符
  • 八 rk3568 android11 AP6256 蓝牙调试
  • 网络安全之sql注入
  • 渐变头像合成网站PHP源码
  • YOLOv11实战行人跌倒识别
  • 学习笔记-Kotlin
  • ExplaineR:集成K-means聚类算法的SHAP可解释性分析 | 可视化混淆矩阵、决策曲线、模型评估与各类SHAP图
  • 【机器学习】实战:天池工业蒸汽量项目(一)数据探索
  • 【案例81】NMC调用导致数据库的效率问题
  • 深度学习中的学习率调度器(scheduler)分析并作图查看各方法差异
  • 【CI/CD构建】关于不小心将springMVC注解写在service层
  • 利用Python爬虫按图搜索1688商品(拍立淘):开启智能购物新体验
  • RIP协议在简单网络架构的使用
  • 工具推荐:PDFgear——免费且强大的PDF编辑工具 v2.1.12
  • QT中,在子线程中更新UI,会出现哪些问题,如何避免这种情况发生。
  • 全面掌握AI提示词的艺术:从基础到高级的深度探索