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';

 
posted @ 2018-02-05 20:37  喵喵帕斯  阅读(308)  评论(0编辑  收藏  举报