暂无图片
杨向博 — 腾讯云数据库架构师,PostgreSOL ACE
PostgreSQL ACE,PGFans社区签约作者,中国PG分会专家。先后就职于平安科技,腾讯云等大厂。熟悉PG/0racle等主流数据库相关技术,拥有丰富的实施、维护、管理经验,曾服务于通信、金融、电商、医疗等领域客户。热衷于开源PG技术研究及推广,活跃于PG技术社群,提倡DBA向内核精进,多次参加《中国PostgreSQL数据库生态大会》、《PostgreSQL中国技术大会》、《ACDU中国行》等技术大会。
NickYoung
暂无图片
腾讯云 DBA
2019-06-04 加入墨天轮
暂无图片
暂无图片
NickYoung
专注于PostgreSQL
关注TA
写留言
15
文章
3
粉丝
3K+
浏览量
-DBA
-腾讯云
个人成就
发布15次内容
获得10次点赞
内容获得2次评论
获得4次收藏
回答了0次问答
文章分类
postgresql运维
(15)
postgresql
(15)
墨力计划
(13)
文章档案
2025年01月
(1)
2024年12月
(1)
2024年11月
(3)
2024年10月
(4)
2024年09月
(6)
最新评论
数据深渊:Oid Wraparound引发的两年半SQL噩梦终于迎来曙光!
也就是说一个database中,可以有42亿张表+42亿个视图+42亿大对象等等?
-清风生
vacuum full优化--支持空间预检查
vacuum full优化--支持空间预检查
-锁钥
动态
文章 ·15
数说 ·0
问答 ·0
文档 ·0
课程 ·1
视频 ·6
活动 ·1
关注
留言板·0
数据深渊:Oid Wraparound引发的两年半SQL噩梦终于迎来曙光!
OID回卷并不常见,练习PG两年半的DBA小A,第一次练习OID回卷的问题,解决运行时长两年半的"慢sql"。
发布文章
2025-01-24
auto_explain原理探究
简单总结下auto_explain的原理:sql执行时插件的hook函数去调用explain对应的逻辑,然后打印执行计划到数据库日志。
发布文章
2024-12-03
pg_hint_plan技术内幕--05 hint_table
当我们无法改写sql文本时,可以将hint文本写入到hint_table,在执行sql时会查询hint_table对应当前query_id的hint_str,接着去指定执行计划。因此,也可以说是hint_table有两个重要能力:1、不该写sql文本影响执行计划;2、实现全局共享执行计划。
发布文章
2024-11-30
pg_hint_plan技术内幕--04 Join order
join order也就是leading hint的逻辑相对复杂一点,从原理上看也是在hook函数中,将不同与leading hint的join path的startup_cost配置为disable_cost,这样最小代价就是hint所指定的join顺序,就实现了指定join顺序。
发布文章
2024-11-11
pg_hint_plan技术内幕--03 Join method
Join method的原理,其实就是对hint指定的几个表,将hint之外的join方式的startup_cost配置为disable_cost,这样最小代价就是hint指定的join方式了。
发布文章
2024-11-06
修改disable_cost为guc参数--增强干预执行计划
笔者很多次遇到由于disable_cost不够大,导致无法使用hint强制走指定的索引的场景,本篇尝试将其设置为一个guc参数可以动态调整,对于这样的场景就能够精准打击。当然指定的索引对于查询条件来说要是合理的。
发布文章
2024-10-18
pg_hint_plan技术内幕--02 Scan method
本文我们将深入探索hint中scan method的原理。以IndexScan(table[ index...])为例在set_rel_pathlist时进入hook,pg_hint_plan处理rel的indexlist,只保留hint中指定的index,从list中delete其他unused index,并将indexscan之外其他的scan method配置为disable_cost。最后计算最小代价,确定最终的path。
发布文章
2024-10-16
pg_hint_plan技术内幕--01核心原理
本文简单介绍了pg_hint_plan的核心原理,及使用场景,算是pg_hint_plan技术内幕系列的开篇吧。后续的文章会继续深入探索scan method、join method、join order这几种hint的原理。
发布文章
2024-10-15
create table优化--ixconstraints表空间跟随表
建表时如果同时创建主键等ixconstraints,并且指定了表的表空间,没有指定ixconstraints的表空间,PG默认会将ixconstraints放到默认表空间,而不是跟随表。本文就是对一行为的修改,默认让ixconstraints跟随表的表空间。
发布文章
2024-10-04
create tablespace优化--自动创建Location directory
我们使用PG在create tablespace时需要提前手动创建表空间目录并授权给PG用户,这样很麻烦。本文尝试增加了create tablespace时自动创建表空间的能力,这样省事多了。
发布文章
2024-09-27
postgres_fdw无法下推where条件原理探究
对于postgres_fdw是否会将where条件下推至remote执行有一些规则。 where条件中如果使用到了插件对应的function、operator、type等,那么首先在server的option里要配置这个extension。 满足这几种条件就不会下推至remote: 1、foreign_expr_walker函数返回false; 2、表达式的有效排序规则不是由foreign var产生的; 3、包含任何可变函数的表达式不能被发送,因为它的结果不稳定。
发布文章
2024-09-13
优化器刺客之limit 1--Order by col limit n 代价预估优化探索
优化器代价预估过于理想化,导致order by col limit n代价计算偏差大,可尝试修改计算公式修正cost计算。
发布文章
2024-09-11
PostgreSQL行级安全策略探究
PG的RLS也是将对应的策略动态转换为where子句,在查询重写阶段将安全策略拼接到parsetree,生成执行计划去执行。
发布文章
2024-09-11
提升wait_event时间观测--增加wait_event_start
新增wait_event_start,这样就能得到每个等待事件相对准确的的“等待”时间,对于一些异常分析或者是功能调试来说是有意义的。
发布文章
2024-09-11
vacuum full优化--支持空间预检查
数据库内核本身支持了vacuum full 操作之前做空间预检查。如此一来,便可避免在某些客观因素下,因磁盘告警失效而进行的vacuum full操作导致磁盘被写满的情况发生,从而显著地提升了该维护操作的可靠性。
发布文章
2024-09-10