会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
段磊的博客
博客园
首页
新随笔
联系
订阅
管理
2021年2月25日
Postgresql索引结构-Hash
摘要: 前言 本篇介绍Postgresql中Hash索引的结构以及应用场景。 什么是Hash? Hash的思想是将一个小数字(从0到N−1,总共N个值)与任何数据类型的值关联起来。这样的关联称为Hash函数。所获得的数字可以用作一个常规数组的索引,其中存储对表行(tid)的引用。这个数组的元素被称为Hash
阅读全文
posted @ 2021-02-25 16:04 DUAN的博客
阅读(1019)
评论(0)
推荐(0)
2021年2月5日
PG_Heap Only Tuple(HOT)剖析
摘要: Postgresql在8.3版中引入了HOT特性,以便在Update操作中,当更新的新行和旧行存储在相同的表数据页中时,能有效地使用索引和表的页;同时也减少了Vacuum处理的必要性。 无HOT之前PG-update存在的问题 假设表‘tbl’存在两个列 ‘id’ 和‘data’; ‘id’ 是 ‘
阅读全文
posted @ 2021-02-05 16:46 DUAN的博客
阅读(717)
评论(0)
推荐(1)
2021年1月20日
PG优化实战系列-利用hint固定执行计划,避免数据全量排序
摘要: 项目现场开发给了个慢SQL寻求优化。T3表结构又全是varchar…已经无力吐槽了,之前的博客已经讲过了在磁盘上varchar几乎等同于实际长度,但是如果放到内存,分配的空间是定义长度,很容易导致内存不足,如果嫌命长,可以多试试。此外不要用UUID做主键,UUID做主键会导致索引结构大,同时UUID
阅读全文
posted @ 2021-01-20 16:05 DUAN的博客
阅读(922)
评论(0)
推荐(0)
Postgresql索引结构-Btree
摘要: B-tree索引类型,实现为“btree”访问方法,适用于可以排序的数据。换句话说,必须为数据类型定义“更大”、“更大或相等”、“更小”、“更小或相等”和“相等”操作符。 在B-tree的数据结构架构图中,B-tree的索引行被存在索引页中。在存储叶子节点的页中,这些行包含建立索引的数据(键)和指向
阅读全文
posted @ 2021-01-20 09:59 DUAN的博客
阅读(1782)
评论(0)
推荐(0)
2021年1月19日
PG-进程和内存架构
摘要: 在本章中,总结PostgreSQL的进程架构和内存架构 1. 进程架构 Postgresql是个C/S(client/server)的关系型数据库,具有多进程的架构,运行在一个主机上。 多个进程协同管理一个数据库集群通常被称为“PostgreSQL server”,它包含以下类型的进程: postg
阅读全文
posted @ 2021-01-19 19:36 DUAN的博客
阅读(599)
评论(0)
推荐(0)
2020年12月26日
PG优化实战系列-200+s到毫秒级记录?
摘要: 背景 前段时间同事在优化一个SQL,优化效果从最开始的200+s通过SQL改写优化到20s,但是依旧不能满足现场需求,于是发给我们瞅瞅。 问题解决 表情况 tab1是一张大表,一年数据量亿级别,已经按年分区存在索引 idx1(time1,colx),id唯一 原始SQL: select count(
阅读全文
posted @ 2020-12-26 15:53 DUAN的博客
阅读(292)
评论(0)
推荐(0)
PG优化实战系列-32线程CPU100%?
摘要: 背景 前段时间在某现场遇到个问题,早上到项目现场,技术支持反映数据库不可查,32个现场的CPU直接全部100%。 为了尽快恢复使用,在得到业务同意情况下,直接重启Postgresql,重启后CPU恢复正常,未出现再持续增长情况。 问题定位 现场已经装了插件pg_stat_statements,直接查
阅读全文
posted @ 2020-12-26 15:19 DUAN的博客
阅读(447)
评论(0)
推荐(0)
2020年12月24日
PG_普通表在线改造成分区表
摘要: 很多项目现场由于前期规划问题导致很多表未设置成分区表,下面介绍一种在线迁移的方法。 使用继承表,触发器,异步迁移,交换表名一系列步骤,在线将非分区表,转换为分区表(交换表名是需要短暂的堵塞)。 关键技术: 1、继承表(子分区) 对select, update, delete, truncate, d
阅读全文
posted @ 2020-12-24 15:53 DUAN的博客
阅读(1861)
评论(0)
推荐(0)
2020年12月19日
PG主从系列-逻辑复制
摘要: 前言 Postgresql支持“逻辑”和“物理”两种复制方式,逻辑复制是一种基于数据对象的复制标识(通常是主键)复制数据对象及其修改的方法,而后者使用准确的块地址以及逐字节的复制方式(WAL日志),逻辑复制允许数据复制和安全性上更细粒度的控制(可以对特定表进行复制)。逻辑复制采用发布者->订阅者模型
阅读全文
posted @ 2020-12-19 15:53 DUAN的博客
阅读(2661)
评论(0)
推荐(0)
2020年12月18日
PG优化实战系列-为什么走索引比顺序扫描慢?
摘要: 在某现场进行优化过程中,开发拿来一个有意思的现象,一个SQL不加order by速度快数倍。查看两者执行计划发现不加order by的SQL走的全表扫描,而加了order by的SQL走的索引,速度反而比前者慢很多。 不带ORDER BY SQL: explain (ANALYZE true,buf
阅读全文
posted @ 2020-12-18 16:04 DUAN的博客
阅读(946)
评论(0)
推荐(0)
下一页
公告