Postgresql VACUUM COPY等

1.VACUUM

VACUUM回收dead tuples占用的存储空间。 在一般的PostgreSQL操作中,被update操作删除或废弃的元组不会从物理表中删除; 它们一直存在,直到执行VACUUM才会被删除。 因此,必须定期进行VACUUM,特别是在经常更新的表格上。可以极大减少表的内存占用。

清理所有表:

VACUUM

清理指定表 :

VACUUM FULL tablename
[ FULL ]为可选项,可以回收更多的空间,但需要更长的时间同时会锁定表。 此方法还需要额外的磁盘空间,因为它会写入表的新副本,并且在操作完成之前不会释放旧副本。 通常这只能在需要从表格内回收大量空间时才使用。

2.查询数据库所有权限
select * from INFORMATION_SCHEMA.role_table_grants
如果想查询用户xttblog有哪些权限,可以查询系统表information_schema.role_table_grants:
select * from INFORMATION_SCHEMA.role_table_grants where grantee='xttblog';

3.PostGIS 是 PostgreSQL 关系数据库的空间操作扩展。它为 PostgreSQL 提供了存储、查询和修改空间关系的能力。

关于postGIS没有template_postgis模版的问题解决
http://blog.csdn.net/u013323965/article/details/52191908

4. \COPY

psql下用\copy,pgadmin中用copy

功能1.拷贝文件到数据库

COPY table_name [ ( column_name [, ...] ) ]
FROM { 'filename' | PROGRAM 'command' | STDIN }
[ [ WITH ] ( option [, ...] ) ] 功能2.数据库文件导出
COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
TO { 'filename' | PROGRAM 'command' | STDOUT }
[ [ WITH ] ( option [, ...] ) ]
option可以是:

    FORMAT format_name
OIDS [ boolean ]
FREEZE [ boolean ]
DELIMITER 'delimiter_character'
NULL 'null_string'
HEADER [ boolean ]
QUOTE 'quote_character'
ESCAPE 'escape_character'
FORCE_QUOTE { ( column_name [, ...] ) | * }
FORCE_NOT_NULL ( column_name [, ...] )
FORCE_NULL ( column_name [, ...] )
ENCODING 'encoding_name'

例子

\COPY 将数据拷贝到有自增主键的表 自增主键不出现,只出现要拷贝的列,列名按csv文件中列的顺序来

DELIMITER ';' 分隔符;

CSV 文件格式

HEADER 第一行不读,略过开头

encoding 'LATIN1' 编码设置为拉丁编码 如德语就是拉丁编码
\copy residential_district(district,districtname,reigon, reigonname,sex ) from 'C:/a.csv' with DELIMITER ';' CSV HEADER encoding 'LATIN1'

5.删除所有表

复制以下代码

DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO public;
COMMENT ON SCHEMA public IS 'standard public schema';

 
上一篇:PostgreSQL Replication之第三章 理解即时恢复(3)


下一篇:FastReport产品介绍及免费下载地址