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

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.lryc.cn/news/521236.html

相关文章:

  • 51c自动驾驶~合集46
  • Elasticsearch:使用全文搜索在 ES|QL 中进行过滤 - 8.17
  • 《自动驾驶与机器人中的SLAM技术》ch8:基于 IESKF 的紧耦合 LIO 系统
  • 引领图像编辑领域的新潮流!Edicho:实现跨图像一致编辑的新方法(港科蚂蚁)
  • 459. 重复的子字符串【力扣】——kmp拼接字符串解法
  • fpga 的时钟管理模块pll 跟 dcm
  • USB 驱动开发 --- Gadget 驱动框架梳理(一)
  • 1Hive概览
  • 【Web安全】SQL 注入攻击技巧详解:UNION 注入(UNION SQL Injection)
  • IoTDB 常见问题 QA 第三期
  • RabbitMQ---消息确认和持久化
  • 《鸿蒙Next旅游应用:人工智能赋能个性化与智能导览新体验》
  • 微信小程序获取当前页面路径,登录成功后重定向回原页面
  • 【9.2】Golang后端开发系列--Gin路由定义与实战使用
  • 【微信小程序】let和const-综合实训
  • 图匹配算法(涵盖近似图匹配)
  • java线程——Thread
  • MySQL8.0新特性
  • Oracle EBS GL定期盘存WIP日记账无法过账数据修复
  • 【绝对无坑】Mongodb获取集合的字段以及数据类型信息
  • 【Git版本控制器--1】Git的基本操作--本地仓库
  • C++并发编程之无锁数据结构及其优缺点
  • Ubuntu上,ffmpeg如何使用cuda硬件解码、编码、转码加速
  • rclone,云存储备份和迁移的瑞士军刀,千字常文解析,附下载链接和安装操作步骤...
  • Ubuntu | 系统软件安装系列指导说明
  • 队列(算法十三)
  • vLLM私有化部署大语言模型LLM
  • OpenAI Whisper:语音识别技术的革新者—深入架构与参数
  • 基于当前最前沿的前端(Vue3 + Vite + Antdv)和后台(Spring boot)实现的低代码开发平台
  • 【Rust】错误处理机制