PostgreSQL 常用命令

PostgreSQL

简介

PostgreSQL: The World's Most Advanced Open Source Relational Database

PostgreSQL 世界上最先进的开源关系数据库

PostgreSQL 是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统

常用命令

一、导出数据库某张表

pg_dump -t [表名] -f [导出文件名.sql] [数据库]
只导出insert语句:pg_dump --table=[表名] --data-only --column-inserts [数据库] > [导出文件.sql]

二、导入某张表到数据库

psql -d [数据库] -f [导入文件名.sql]

三、查看数据库占用磁盘页数情况

select a.relpages, a.reltuples, a.relfilenode,a.reltype,b.typname from pg_class a, pg_type b where a.relname like '[数据表]' and a.reltype=b.oid;
--查看数据库表的磁盘文件路径
select pg_relation_filepath('t_company_risk');

四、查看数据表大小

select pg_size_pretty(pg_table_size('t_company_risk'));

五、查看索引大小

select pg_size_pretty(pg_relation_size('t_company_risk_pkey'));
select * from pg_indexes where tablename='t_company_risk'; -- 查看表的索引

六、对数据库中表索引按照大小排序

select indexrelname, pg_size_pretty(pg_relation_size(indexrelid)) from pg_stat_user_indexes where schemaname='public' order by pg_relation_size(relid) desc;

七、对数据库中表按照大小排

select relname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_tables where schemaname='public' order by pg_relation_size(relid) desc;

八、回收空间(建议先回收指定表)

vacuum full t_company_risk; -- 回收指定表

九、设置主键自增序列最大值(解决insert时主键冲突)

select setval('t_report_component_id_seq',(select max(id) from t_report_component));

十、创建索引

CREATE INDEX ix_t_company_risk_company_id on t_company_risk(company_id);
CREATE UNIQUE INDEX t_company_risk_pkey ON t_company_risk USING btree (insert_key);--主键索引

十一、查看数据库大小

select pg_size_pretty(pg_database_size('[数据库]'));

十二、查看当前正在执行的sql任务

select * from pg_stat_activity;

select pid,application_name,client_addr,query_start,waiting,state,query from pg_stat_activity;

十三、查询pg当前连接数

select count(1) from pg_stat_activity;

十四、查询pg最大连接数

show max_connections;
原文地址:https://www.cnblogs.com/shangwei/p/14388033.html