- 博客(406)
- 资源 (6)
- 收藏
- 关注
原创 mysql参数explicit_defaults_for_timestamp问题
explicit_defaults_for_timestamp = OFF是第一列的行为非常奇葩,而且会影响后面的表列。
2025-12-19 16:07:27
380
原创 Overlay网络搭建实战
- 搭建Overlay虚拟网络的常见方式是gre、IPIP。- 隧道IP必须配置对应的隧道协议才能传输,其他机器必须配置对应的隧道才能访问。- PostgreSQL绑定隧道IP后,可支持通过物理IP和Overlay IP多地址访问。
2025-11-18 10:59:24
462
原创 OpenTenBase源码(2)三种数据重分布方式举例
OpenTenBase执行器是pull模型的分布式加强版本,主要做了针对分布式优化。**为了获取最大并行度,将计划切为Remote Subquery Scan,发到dn的不同进程上执行。**
2025-09-28 17:21:29
260
原创 Postgresql源码(148)hash表的调试方法与技巧
处理实际问题时,经常需要调试hash表,例如需要gdb查看hash表中的数据结构等等。本篇结合实例给出一些使用方法技巧,后续遇到问题可以快速通过gdb查看hash表内容。
2025-08-11 16:52:50
456
原创 Postgresql源码(147)Nestloop流程与Instrumentation简单分析
摘要:NestLoop连接算法采用双层循环结构,外层遍历外表元组,内层遍历内表元组。每对元组需先通过ON条件,再检查WHERE条件。支持参数化内表查询,可将外表字段值传递给内表。执行流程包括:获取外表元组→参数化内表→重扫描内表→获取内表元组→处理未匹配的LEFT/ANTI JOIN→检查连接条件→返回符合条件的结果。EXPLAIN ANALYZE通过InstrStart/StopNode记录执行时间和处理元组数。
2025-07-15 16:26:14
982
原创 Postgresql源码(146)二进制文件格式分析
PostgreSQL在Linux平台生成ELF格式的可执行文件,通过readelf和gdb工具可分析其结构。
2025-06-05 17:22:59
838
原创 Postgresql源码(145)优化器nestloop评估不准问题分析
最近遇到一个问题,评估行数和真实行数存在较大差距,导致计划不准的问题。nestloop内表评估是根据外表的参数来的。因为外表驱动表每取一条,内表才能做查询。所以这里外表的一条数据对内表来说就是参数。内表使用参数化路径来评估行数。本篇针对这个实例对参数化路径行数评估做一些分析。
2025-05-01 11:23:50
1291
原创 Postgresql源码(144)LockRelease常规锁释放流程分析
最新遇到一个共享内存损坏导致常规锁释放报错warning "you don't own a lock of type"的问题。本篇对常规锁的概念做一些回顾,顺便分析下释放锁的流程。
2025-04-30 15:18:35
1005
原创 Citus源码(2)分布式读流程分析与基础概念梳理(shardid、placementid、groupid)
本篇尝试分析几部分内容:1. 插件挂入内核的位置。2. 插件中几个主要函数的大体功能总结。3. 一个简单的SELECT DQL查询分布式表的执行流程。
2025-04-01 16:35:41
955
原创 Citus源码(1)分布式表行为测试
1. 最近对citus的实现非常好奇,本篇对citus的行为做一些测试。2. 本篇只测行为,不分析源码。后面会继续写一系列文章分析citus源码。
2025-03-25 17:51:06
813
原创 Postgresql源码(142)子查询提升pull_up_sublinks
Postgresql源码(142)子查询提升pull_up_sublinks
2025-03-24 22:27:25
1042
原创 准确理解valgrind中callgraph的结果含义
valgrind虚拟了程序的运行环境,以大幅降低程序性能为代价,提供准确的函数调用次数、调用关系、执行时间等信息,在一些需要精确分析性能的场景非常有效。
2025-02-07 15:24:22
387
原创 Postgresql源码(140)理解PG的编译流程(make、Makefile、Makefile.global.in)
理解Postgresql的编译流程。
2025-01-21 17:57:40
1244
原创 Varints变长整数编码分析
Varints在Protobuf wire format中最重要的编码方式,整形、字符串等类型的编码底层都会使用Varints。
2024-11-19 21:05:33
786
原创 Postgresql源码(138)alter table增加列的执行流程分析
alter table 逻辑比较繁琐,但并不复杂,这里以增加列为例简单梳理流程。
2024-11-13 10:40:26
803
原创 Postgresql源码(135)生成执行计划——Var的调整set_plan_references
生成执行计划中对var引用的调整set_plan_references
2024-06-06 15:47:53
1222
原创 Postgresql源码(133)优化器动态规划生成连接路径的实例分析
物理算子的生成分为两步,基表的扫描路径生成set_base_rel_pathlists;连接路径生成(make_rel_from_joinlist动态规划)。本篇简单分析实现。
2024-05-22 18:05:01
1678
原创 Postgresql源码(132)分布式行锁的原理分析
PG中的行锁在上一片中做了分析,本篇对分布式PG(PGXL)中的行锁做一些分析。(版本:Postgres-XL 10alpha2)
2024-05-21 20:16:28
1610
3
原创 Postgresql源码(131)行锁的原理分析
行锁是一种用于控制并发访问的机制,可以确保同一时间只有一个事务可以修改或删除特定的行数据。本文对行锁的原理做一些分析。
2024-05-20 18:05:10
1407
原创 Postgresql源码(129)JIT函数中如何使用PG的类型llvmjit_types
JIT函数中如何使用PG的类型llvmjit_types
2024-05-17 15:16:37
1240
oracle core essential internals for dbas and developers
2024-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅