摘要: 开始我个人的理解,当 where 条件出现 or 或者 and 之类,有可能产生这种状况:postgres=# explain analyze select id,deptno from gaotab where id=100 or id=300; QUERY PLAN ---------------------------------------------------... 阅读全文
posted @ 2012-11-07 17:33 健哥的数据花园 阅读(6921) 评论(1) 推荐(0) 编辑
摘要: 开始所谓index only scan ,就是因为 建立 index时,所包含的字段集合,囊括了我们 查询语句中的字段,这样,提取出相应的 index ,就不必再次提取数据块了。例子:postgres=# \d gaotab; Table "public.gaotab" Column | Type | Modifiers --------+-----------------------+----------- id | integer | name | character varying(20) |... 阅读全文
posted @ 2012-11-07 16:30 健哥的数据花园 阅读(2834) 评论(0) 推荐(0) 编辑
摘要: 开始数据量很小的时候,我们可以看到,seq scan 比 index scan 更加有效。那是因为 index scan 至少要发生两次I/O,一次是 读取索引块, 一次是读取数据块。当index 很大的时候,情况可能会更加复杂。postgres=# select a.relpages, a.reltuples, a.relfilenode,a.reltype,b.typname from pg_class a, pg_type b where a.relname like 'gaotab%' and a.reltype=b.oid; relpages | reltuples 阅读全文
posted @ 2012-11-07 15:06 健哥的数据花园 阅读(12458) 评论(1) 推荐(1) 编辑
摘要: 开始ctid 和 物理存储有关,指的是 一条记录位于哪个数据块的哪个位移上面。postgres=# select ctid, * from gaotab; ctid | id | name | deptno | age ---------+-----+--------+--------+----- (0,1) | 1 | gao | 10 | 30 (0,2) | 2 | jian | 11 | 35 (0,3) | 3 | tom | 11 | 30 (0,4) | 4 | nam04 | 1... 阅读全文
posted @ 2012-11-07 13:53 健哥的数据花园 阅读(4707) 评论(1) 推荐(0) 编辑
摘要: 开始table 的状况:[作者:技术者高健@博客园 mail:luckyjackgao@gmail.com]postgres=# analyze gaotab;ANALYZEpostgres=# select a.relpages, a.reltuples, a.relfilenode,a.reltype,b.typname from pg_class a, pg_type b where a.relname like 'gaotab%' and a.reltype=b.oid; relpages | reltuples | relfilenode | reltype | ty 阅读全文
posted @ 2012-11-07 10:59 健哥的数据花园 阅读(1507) 评论(1) 推荐(0) 编辑
摘要: 开始csv 文件的内容:id name departno age1 gao 10 302 jian 11 353 tom 11 30导入前:postgres=# select a.relpages, a.reltuples, a.relfilenode,a.reltype,b.typname from pg_class a, pg_type b where a.relname like 'gaotab%' and a.reltype=b.oid; relpages | reltuples | relfilenode | r... 阅读全文
posted @ 2012-11-07 08:42 健哥的数据花园 阅读(2233) 评论(2) 推荐(0) 编辑