PostgreSql查看执行计划及分表

来源:互联网 发布:酒店网络点评回复范文 编辑:程序博客网 时间:2024/06/06 05:39

1.查询执行计划,explain [analyze,verbose] statement即可

例如:explain select * from tb_user;

通过这条语句可以看到该Sql的执行计划,从而对影响Sql性能的瓶颈予以分析。

2.分表

主表:

CREATE TABLE tb_qq(  id integer NOT NULL,  username character varying(50),  CONSTRAINT tb_qq_pkey PRIMARY KEY (id))

子表:

CREATE TABLE tb_qq_0_100(    CHECK(id>=0 AND id<=100))INHERITS(tb_qq);
CREATE TABLE tb_qq_101_200(    CHECK(id>=101 AND id<=200))INHERITS(tb_qq);

分表的好处在于:

1.操作可以固定在某个表进行,如只对id在101-200范围内的用户操作,那么只需处理tb_qq_101_200即可。

2.扩大表的容量,多个子表存储的内容大于单个主表的。

3.热值所在的表可以放在更快的硬件平台上。

需注意的是:

分表只对大数据量有好处,如果数据量不大而进行分表,只会给应用程序带来麻烦。

 

postgresql函数的写法:

CREATE FUNCTION user_insert() RETURNS void AS $body$DECLAREi integer := 1;BEGINfor i in 0..100 loopinsert into tb_qq values(i,'test');end loop;END;$body$LANGUAGE 'plpgsql';