
postgresql
文章平均质量分 66
rudy_gao
这个作者很懒,什么都没留下…
展开
-
浅析PostgreSQL事务处理机制
1、Q:PostgreSQL中DDL支不支持事务?A:支持。PostgreSQL中对DDL的处理方式和普通的DML类似,也是支持事务的。 2、 Q:PostgreSQL中对BLOB数据的处理支不支持事务?A:支持。对BLOB(bytea或large object)数据的事务处理和普通数据的差别不大,但由于BLOB数据较大涉及BLOB的事务会产生很大的WAL日志文件。 3、Q转载 2015-07-08 10:01:11 · 1747 阅读 · 0 评论 -
事务xmin,xmax
原理:在元组的头部记录着2个特殊的标记值,xmin和xmax;xmin表示插入该元组的事务号,xmax表示删除该元组的事务号执行select查询时,会首先获取一个数据库快照,该快照也包括xmin和xmax,这里的xmin表示当前已完成的事务的最小id,xmax表示正在执行的事务的最大id,任何小于xmin的事务被认为已完成,任何大于xmax的事务被认为尚未结束;位于xmin与xmax之原创 2015-09-17 14:04:19 · 1421 阅读 · 0 评论 -
PostgreSQL的日志类型
刚开始学习postgres的时候,可能对PostgreSQL中的日志概念比较模糊,到底有多少种日志,哪些日志是能删除的,各自又记录什么样的功能。PostgreSQL中有三种日志,pg_log,pg_xlog和pg_clog。一.安装路径这三种数据库后两者一般的安装路径是$PGDATA/下面的文件夹下,前者默认路径是$PGDATA/pg_log,通常可自己定义路径和文件名转载 2015-10-15 16:12:48 · 853 阅读 · 0 评论 -
postgresql 正则暗坑
--注意pg的正则使用不正会有隐患 postgres=# select * from t; id | name ----+------ 1 | bill 1 | bill 1 | bill(3 rows)--注意,由于没有匹配正则,其执行了过滤操作(其是在select字段中,不细看还以为t表中没有数据呐)postgres=# select t.*,regexp_matche原创 2016-03-22 11:20:46 · 2041 阅读 · 0 评论 -
postgresql 9.5版本之前实现upsert功能
最近有开发人员问,有没有办法实现在pg9.5版本之前实现upsert功能,现整理如下--创建测试表,注意此处先不要主键或唯一约束create table t2 (id int,name varchar(100));-- pg 在9.5之前实现不存在则插入-- 现在需要实现,当id字段的值存在时,则更新name字段的值,如果id字段的值不存在,则执行插入with upsert as原创 2016-04-29 14:39:43 · 5381 阅读 · 0 评论 -
pg_upgrade 版本升级
--对于小版本的升级,内部存储格式是兼容的,大版本不一定兼容--小版本可以直接替换二进制文件,大版本需要导出与导入升级Minor releases never change the internal storage format and are always compatible with earlier and later minor releases of the same major v原创 2016-05-23 09:35:38 · 2411 阅读 · 0 评论