半个PostgreSQL DBA,热衷于数据库相关的技术。我的ppt分享https://pan.baidu.com/s/1eRQsdAa https://github.com/chenhuajun https://chenhuajun.github.io
发布时间:2015-01-15 19:42:29
简单查询和扩展查询是PG前端和后端交互的时候,2种不同交互方法。简单查询时,前端发一个包含SQL的包过去,后端执行后返回结果。扩展查询则是把简单查询切分成Parse,Bind,Describe,Execute,Close等几个步骤,以达到执行计划复用的目的。扩展查询还有防止SQL注入,减少通信数据量(使用binary形式传参)的效果。更详细的描.........【阅读全文】
发布时间:2015-01-15 19:14:24
?严格来讲,PostgreSQL并没有提供plan cache这样的功能,PG提供的是预备语言(preparedstatement)。关键区别在于,预备语言要求应用给这个语句起个名字,之后应用再通过这个名字请求服务端执行,并且由应用负责回收。而plan cache对应用应该是透明的。......【阅读全文】
发布时间:2015-01-14 10:57:38
最近在看PG query planner部分的代码相对于mysql的代码, postgres代码的可读性很高大致画了下这部分的流程图, 辅助理解代码......【阅读全文】
发布时间:2014-12-31 23:40:25
今年的PG用户大会,华为的许中清分享了《PostgreSQL表分区实践》。其PPT最后一页的测试结果表明,100分区的继承分区表的查询更新删除比不分区的普通表慢了2个数量级。虽然PG的手册中也有提到分区数比较多时的弊端,但是否真慢到这种程度心中还是存了疑问,故测试验证之。......【阅读全文】
发布时间:2014-12-29 18:13:38
前段时间有同事咨询PostgreSQL相关的问题,发现他们用了一个自动生成的32字节的字符串作为唯一键,而这张表的数据量相当大,建议他们改用序列,可减少存储空间。但用序列有一点不一样,就是序列必须顺序产生,那么高并发访问时会不会成为性能瓶颈呢?下面做个测试验证一下。......【阅读全文】