![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PostgreSQL 源码分析
文章平均质量分 77
记录工作使用 PostgreSQL 以及一些源码特性。
0x13
coding...
展开
-
【PostgreSQL】客户端请求处理 PostgresMain()
参数化 Prepared-statement 的解析阶段:bind,将上一阶段的 PreparedStatement 生成执行计划并绑定保存,后续相同的参数化请求可以复用,还需要对已有的计划进行校验。请求传递的是参数、参数格式和返回列格式。参数化 Prepared-statement 的解析阶段:parse,对语法进行分析并重写,请求传递的是带参数占位符的sql语句。参数化 Prepared-statement 的解析阶段:execute,参数和计划 Portal 都有了直接执行请求。原创 2023-04-26 17:21:16 · 182 阅读 · 0 评论 -
【PostgreSQL】检查点机制 CheckpointerMain()
WAL 文件顺序记录了提交的数据修改记录,每个操作都有一条 xlog 日志而 LSN 就是这一条条日志的编号,在某一个 LSN 执行 Checkpoint 后,这个 LSN 之前的 WAL 日志所对应的内存的脏数据就持久化了,WAL 在这个 LSN 之前的日志也就不需要了,在执行了 CheckPoint 之后,控制文件会记录这一次执行的 CheckPoint 具体在哪个 WAL 文件的哪一条 xlog 记录上。这两个文件都比较重要,控制文件损坏影响的是系统恢复、wal 文件损坏影响的是备份。原创 2023-02-19 19:14:29 · 16461 阅读 · 0 评论