半个PostgreSQL DBA,热衷于数据库相关的技术。我的ppt分享https://pan.baidu.com/s/1eRQsdAa https://github.com/chenhuajun https://chenhuajun.github.io
发布时间:2014-12-29 18:13:38
前段时间有同事咨询PostgreSQL相关的问题,发现他们用了一个自动生成的32字节的字符串作为唯一键,而这张表的数据量相当大,建议他们改用序列,可减少存储空间。但用序列有一点不一样,就是序列必须顺序产生,那么高并发访问时会不会成为性能瓶颈呢?下面做个测试验证一下。......【阅读全文】
发布时间:2014-12-25 18:19:57
C语言的打桩(Interpositioning)机制是一种用定制的函数替换链接库函数且不需重新编译的技术。甚至可用此技术替换系统调用(更确切地说,库函数包装系统调用)。说白了,编译时使用的动态库中的某个符号可能在运行时被可执行程序或另一个动态库的同名符号替换。如果发生替换的原因不是用户有意为之而是不同的库间偶然出现了符号重名,那就会带来Bug。......【阅读全文】
发布时间:2014-12-25 15:45:54
关于TIMESTAMP WITH TIME ZONE,SQL标准中有这么一段描述SQL2008TIMESTAMP and TIME may also be specified as being WITH TIME ZONE, in which case every value hasassociated with it a time zone displacement. In comparing values of a data type WITH TIME ZONE, the valueof the .........【阅读全文】
发布时间:2014-12-08 12:52:51
LC_CTYPE代表了区域中的字符分类,比如哪些字符是字母,哪些是数字,大小写等。PostgreSQL支持区域相关的行为,其底层实现是调用了操作系统提供的相关接口,比如判断字符大小写的isupper()。因此PostgreSQL中字符分类相关的行为和OS一致,但是实测发现,还是有一些差别的。......【阅读全文】
发布时间:2014-12-05 16:48:15
PostgreSQL通过gettext实现对多语言消息的支持。消息的语言是英语还是中文可以通过postgresql.conf中的lc_messages控制。在启动PostgreSQL时,postmaster进程(你看到的进程名可能是postgres)会根据postgresql.conf中的lc_messages值设置进程locale(调用setlocale()),然后再fork出一堆其它进程。但在postmaster读取postgr.........【阅读全文】