显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL research

公益是一辈子的事, I'm 德哥@Digoal, Just Do it!

 
 
 
 
 
 
为了让跟多的朋友了解PostgreSQL, 我将这些年对PG的使用和研究做成了一些体系的培训视频和一些专题视频.(免费观看和下载)

希望通过这些视频帮到一些朋友, 同时对视频中的错误点烦请读者指出以更正, 谢谢.

目前在更新的视频是<PostgreSQL 数据库管理 5天>和<PostgreSQL 性能优化 3天>.

在线观看地址 :

http://www.tudou.com/home/digoal/

培训视频源文件以及文档下载地址 : 

http://pan.baidu.com/share/home?uk=1982970774#category/type=0

转载请注明出处.

针对一些网友的反馈, 重新设计的培训内容如下, 由浅入深, 适合不同的人群. 包含

<PostgreSQL发展历程,社区介绍,资源介绍 2小时>

<PostgreSQL SQL基础 2天>

<PostgreSQL 数据库管理 3天>

<PostgreSQL 数据库备份与恢复, 数据复制, 负载均衡与高可用 3天>

作者  | 2014-2-22 10:19:30 | 阅读(3950) |评论(24) | 阅读全文>>

[置顶] 给PostgreSQL爱好者的参考资料

2011-8-21 8:32:39 阅读49014 评论16 212011/08 Aug21

推荐书籍:

概念书籍:

《PostgreSQL Introduction and Concepts》

开发书籍:

《PostgreSQL开发必备参考手册》

管理类书籍:

《PostgreSQL 9 Administration Cookbook》

《PostgreSQL 9.0 High Performance》

《PostgreSQL Server Programming》

《How PostgreSQL Processes a Query》

了解内核 :

http://www.postgresql.org/developer/backend/

http://wiki.postgresql.org/wiki/Backend_flowchart

《数据库查询优化器的艺术:原理解析与SQL性能优化》 - 海翔老师

《 PostgreSQL 内核分析》 - 彭老师

官方手册:

作者  | 2011-8-21 8:32:39 | 阅读(49014) |评论(16) | 阅读全文>>

[置顶] 佛说摩诃般若波罗蜜多心经

2013-7-26 18:04:09 阅读3055 评论2 262013/07 July26

转载自<菩提树下>

http://www.djier.com

般若波罗蜜多心经

观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄。

舍利子,色不异空,空不异色,色即是空,空即是色,受想行识,亦复如是。

舍利子,是诸法空相,不生不灭,不垢不净,不增不减。

是故空中无色,无受想行识,无眼耳鼻舌身意,无色声香味触法,无眼界,乃至无意识界。

无无明,亦无无明尽,乃至无老死,亦无老死尽。

无苦集灭道,无智亦无得。

以无所得故,菩提萨埵,依般若波罗蜜多故,心无挂碍,无挂碍故,无有恐怖,远离颠倒梦想,究竟涅磐。

三世诸佛,依般若波罗蜜多故,得阿耨多罗三藐三菩提。

故知般若波罗蜜多,是大神咒,是大明咒,是无上咒,是无等等咒,能除一切苦,真实不虚。

故说般若波罗蜜多咒,即说咒曰:

揭谛揭谛 波罗揭谛 波罗僧揭谛 菩提萨婆诃。

作者  | 2013-7-26 18:04:09 | 阅读(3055) |评论(2) | 阅读全文>>

docker-hub OFFICIAL & AUTOMATED images

2014-10-22 16:39:29 阅读4 评论0 222014/10 Oct22

在使用docker search从docker hub 查询images时, 返回的数据包含name, 描述, stars, official, automated的信息.

如 :

[root@db-172-16-3-221 ~]# docker search postgres

NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

postgres                                     The PostgreSQL object-relational database ...   273       [OK]

paintedfox/postgresql                        A docker image for running Postgresql.          45                   [OK]

helmi03/docker-postgis                

作者  | 2014-10-22 16:39:29 | 阅读(4) |评论(0) | 阅读全文>>

MOUNT with UUID

2014-10-20 10:29:00 阅读19 评论0 202014/10 Oct20

# blkid

/dev/sda1: UUID="77c06f65-1723-4eba-8355-80575d6eb3be" TYPE="ext4"

/dev/sdd1: LABEL="zp1" UUID="1511997698609595871" UUID_SUB="16603257859564972697" TYPE="zfs_member"

/dev/sdc1: LABEL="zp1" UUID="1511997698609595871" UUID_SUB="11385893700558954624" TYPE="zfs_member"

/dev/sde1: LABEL="zp1" UUID="1511997698609595871" UUID_SUB="1566338042115671962" TYPE="zfs_member"

/dev/sda2: UUID="d72e89fe-989f-4d83-9c95-3ed9f5908d8c" TYPE="swap"

/dev/sda3: UUID="c5b677e7-85d2-4cfa-8a96-8da67a0d8446" TYPE="xfs"

/dev/sdf1: LABEL="zp1" UUID="1511997698609595871" UUID_SUB="13487786097513313825" TYPE="zfs_member"

/dev/sdb1: LABEL="zp1" UUID="1511997698609595871"

作者  | 2014-10-20 10:29:00 | 阅读(19) |评论(0) | 阅读全文>>

[转]轉接老鏡是邪道,淺嚐即止,切勿沉迷

2014-10-20 9:02:43 阅读22 评论0 202014/10 Oct20

[原文]

http://www.sonydslr.com.tw/alpha/viewtopic.php?f=10&t=27933

http://www.douban.com/note/124483657/

說到轉接,最好轉的當然是「任你插到爽」的Canon。加上5DII的全幅吸引力,很多人都會選擇Canon來轉。但是就M42鏡頭來說,Canon有2 個致命的缺點。

第一個,就是反光板的問題。5DII的反光板,是向前弧形的翻起來,會有一個扇形的運動路徑。而反光板翻起來的時候,大概距離接環只有不到5mm的距離。也就是說,一些鏡尾突出接環較多的鏡頭,反光板會狠狠地拍下去。Canon的反光板有多脆弱,不需要小弟多做說明。重點是鏡尾的後玉如果被撞到,很可能會造成難以修復的刮傷。

第二個,則是Canon的色彩問題。Canon的色彩有很明顯的偏向性,配合M42 老鏡那種每一顆都不同調性的特色,會需要在後期進行很多的色彩調整,拍起來會很煩。

而對M42轉接最友善的系統,則屬Pentax了,不需晶片接環就有A模式跟合焦提示,可以手動輸入防手震焦段,還可以玩陷阱對焦。但是Pentax沒有全

作者  | 2014-10-20 9:02:43 | 阅读(22) |评论(0) | 阅读全文>>

max_locks_per_transaction & pg_locks entrys limit

2014-10-17 23:09:16 阅读34 评论0 172014/10 Oct17

有网友问PostgreSQL存储的对象越多, 是不是性能会越差.

我们这么来分析, 存储的对象越多, 元数据就会越大, 例如 :

我用这种方法来创建一堆表,

为了在一个事务中创建多个表, 这里需要调整一下max_locks_per_transaction 以及(或) max connection, 满足创建多表需要的锁插槽数.

digoal=# do language plpgsql $$

declare

tbl name;

begin

create table if not exists tbl (id int primary key, info text, crt_time timestamp);

for i in 400000..500000 loop

execute 'create table if not exists tbl_'||i||'(like tbl including all)';

end loop;

end;

$$;

在调用以上inline block的过程中, 我们可以看到pg_locks中不断的新增插槽, 以及新建relation的锁信息.

digoal=# select count(*) from pg_locks;

count

-------

18381

(1 row)

作者  | 2014-10-17 23:09:16 | 阅读(34) |评论(0) | 阅读全文>>

PostgreSQL in & = any (values|array)

2014-10-16 16:35:26 阅读28 评论0 162014/10 Oct16

查询表的某个或某些字段批量匹配, 可以有几种写法.

select * from t2 where id in (1,2,3,100,1000,0);

select * from t2 where id = ANY ('{1,2,3,100,1000,0}'::integer[]);

select * from t2 where id = ANY (VALUES (1),(2),(3),(100),(1000),(0));

select t2.* from t2 join (VALUES (1),(2),(3),(100),(1000),(0)) as t(id) on t2.id=t.id;

还有or的写法.  select * from t2 where id=1 or id=2 or id=3 ....;

这里主要看一下前几种.

执行计划 :

digoal=# explain select * from t2 where id in (1,2,3,100,1000,0);

QUERY PLAN

--------------------------------------------------------------------

Index Scan using t2_pkey on t2  (cost=0.29..25.82 rows=6 width=37)

Index Cond: (id = ANY ('{1,2,3,100,1000,0}'::integer[]))

作者  | 2014-10-16 16:35:26 | 阅读(28) |评论(0) | 阅读全文>>

how to known rows not match the filter

2014-10-16 15:38:11 阅读21 评论0 162014/10 Oct16

一位兄弟的问题, 当查询条件不匹配时, 如何能知道哪些值不匹配.

例如 :

digoal=# create table t2(id int primary key, info text);

CREATE TABLE

digoal=# insert into t2 select generate_series(1,10000),md5(random()::text);

INSERT 0 10000

digoal=# select * from t2 where id in (1,2,0);

id |               info

----+----------------------------------

1 | 07d16508c6719888fe7030354f9eb3ed

2 | a190af0a3e0f62c1c210e314e2b23018

(2 rows)

以上3个值, 我们只匹配了2个值, 还有一个值没有匹配到, 但是如果要在结果中反映出来, 方法很简单, 外连接就可以了.

digoal=# explain select t2.*,tmp.* from t2 right outer join (values (1),(2),(0)) as tmp(id) on t2.id=tmp.id;

QUERY PLAN

作者  | 2014-10-16 15:38:11 | 阅读(21) |评论(0) | 阅读全文>>

python function args diff between mutable object and immutable object

2014-10-16 10:04:42 阅读21 评论0 162014/10 Oct16

python 函数参数使用注意, 在调用函数时, 传入的参数是值的reference, 而不是值的拷贝.

The actual parameters (arguments) to a function call are introduced in the local symbol table of the called function when it is called; thus, arguments are passed using call by value (where the value is always an object reference, not the value of the object). [1] When a function calls another function, a new local symbol table is created for that call.

Footnotes

[1] Actually, call by object reference would be a better description, since if a mutable object is passed, the caller will see any changes the callee makes to it (items inserted into a list).

在使用参数默认值时, 也需要注意这一点, 因为初始化值仅仅在创建函数时评估一次默认值.

Important warning:

作者  | 2014-10-16 10:04:42 | 阅读(21) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 

浙江省 杭州市 狮子座

 发消息  写留言

 
Free PostgreSQL Support.
 
QQ276732431
E-Mail digoal@126.com
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 

日志分类

 
 
日志分类列表加载中...
 
 
 
 
 

FlagCounter

 
 
模块内容加载中...
 
 
 
 
 

新浪微博

 
 
模块内容加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
心情随笔列表加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2014

创建博客 登录  
 加关注