前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PostgreSQL 常用的命令

PostgreSQL 常用的命令

作者头像
用户1278550
发布2022-04-01 09:25:33
5790
发布2022-04-01 09:25:33
举报
文章被收录于专栏:idbaidbaidba

最近在学习PostgreSQL 技术体系,前面几篇文章介绍了 认识 PostgreSQL 基础权限体系PostgreSQL 相关系统日志参数,今天学习一下常用的命令。

常用管理命令

1 查看用户信息

查看当前数据库所有的用户以及对应的权限

\du

查看schema的相关信息

\dn

在PG里面的schema和user有差异,用户是独立于 数据库,schema,表之外的,MySQL 中 user 基本等于 schema 。PG 默认登陆的是 指定数据库的 public schema 。可以使用 \c 切换到对应的 schema下面

\c schema_name user_name

验证当前的schema 是哪个?

show search_path ;

2 查看数据库信息

可以直接使用 \l (小写字母L) 显示出所有的数据库来,字符集,

\l

如果我们要切换到其他数据库, mysql 使用 use dbname; PG 使用

\c dbname [username]

3 查看表相关信息

查看当前schema 里面所有的表

\d

查看表结构

\d+ tablename

查看哪些用户具有权限访问表

\z tablename

test=# \z proctest
                              Access privileges
 Schema |   Name   | Type  | Access privileges | Column privileges | Policies
--------+----------+-------+-------------------+-------------------+----------
 public | proctest | table |                   |                   |
(1 row)
### 赋给 xx用户对表 proctest的select权限。

test=# grant select on proctest to xx; 
GRANT
test=# \z proctest
                                   Access privileges
 Schema |   Name   | Type  |      Access privileges      | Column privileges | Policies
--------+----------+-------+-----------------------------+-------------------+----------
 public | proctest | table | test_user=arwdDxt/test_user+|                   |
        |          |       | xx=r/test_user              |                   |
(1 row)

查看索引

\di index_name

查看 参数

直接执行 show 参数名即可。

postgresql=# show  log_statement;
 log_statement
---------------
 all
(1 row)
其他命令行

\x命令的含义是:psql客户端每行仅仅显示一个字段以及该字段值. 类似 mysql 中的 \G

\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。

常用 sql

查看执行计划
postgresql=# explain select * from t1 where id=2;
                     QUERY PLAN
----------------------------------------------------
 Seq Scan on t1  (cost=0.00..41.88 rows=13 width=4)
   Filter: (id = 2)
(2 rows)
查看会话连接信息

select * from pg_stat_activity;

查看长时间运行的SQL
SELECT datname,
       pid,
       usename,
       query_start,
       STATE,
       left(query,40) query,
       now()-query_start
FROM pg_stat_activity
WHERE STATE<>'idle'
  AND (backend_xid IS NOT NULL
       OR backend_xmin IS NOT NULL)
ORDER BY now()-query_start;
查看表的统计信息
select relowner::regrole,relname,relkind,relpages,reltuples from pg_class where relname='t1';
查看膨胀高的表TOP 10,如果膨胀太高需要执行,例如 vacuum t1,vacuum不会锁表,vacuum full会锁表
SELECT relname AS TABLE_NAME,
       pg_size_pretty(pg_relation_size(schemaname||'.'||relname)) AS table_size,
       n_dead_tup,
       n_live_tup,
       (n_dead_tup * 100 / (n_live_tup + n_dead_tup))AS dead_tup_ratio
FROM pg_stat_user_tables
WHERE n_dead_tup<>0  order by 5  desc LIMIT 10;
查看数据库用户连接数
select datname,usename,state,count(*) from pg_stat_activity group by datname,usename,state order by 1,2,3,4;
查杀执行时间超过10分钟的sql
select pg_terminate_backend(pid) from pg_stat_activity where   clock_timestamp()-query_start >  '10 min' and backend_type='client backend';
查杀超过10分钟的长事务会话
select pg_terminate_backend(pid) from pg_stat_activity where   clock_timestamp()-xact_start >  '10 min' and backend_type='client backend';
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yangyidba 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常用管理命令
    • 1 查看用户信息
      • 2 查看数据库信息
        • 3 查看表相关信息
          • 查看 参数
            • 其他命令行
            • 常用 sql
              • 查看执行计划
                • 查看会话连接信息
                  • 查看长时间运行的SQL
                    • 查看表的统计信息
                      • 查看膨胀高的表TOP 10,如果膨胀太高需要执行,例如 vacuum t1,vacuum不会锁表,vacuum full会锁表
                        • 查看数据库用户连接数
                          • 查杀执行时间超过10分钟的sql
                            • 查杀超过10分钟的长事务会话
                            相关产品与服务
                            云数据库 SQL Server
                            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档