postgres show processlist 查看进程 锁表情况

# mysql show processlist;
> show processlist;


# psql 查询正在执行的sql
> SELECT pid, datname AS db, query_start AS start, now() - query_start AS lap, query FROM pg_stat_activity WHERE state <> 'idle' and query not like '%pg_stat_activity%'
 and (now() - query_start) > interval '10 seconds';
# psql 
# kill正在执行的sql
# kill有两种方式,第一种是:这种方式只能kill select查询,对update、delete 及DML不生效)
> SELECT pg_cancel_backend(PID);

# 第二种是:这种可以kill掉各种操作(select、update、delete、drop等)操作
> SELECT pg_terminate_backend(PID);

mysql与psql常用命令对比
项目 MySQL PSQL
1. 列出所有的数据库 show databases; \l 或者 \list
2. 切换数据库 use <库名>; \c <库名>
3. 列出当前库下数据表 show tables; \d
4. 列出表的字段 desc <表名>; \d <表名>
5. 查看某个表的进程 SELECT * FROM pg_stat_activity where query ~ '表名';
6.结束进程 select pg_terminate_backend('<进程pid>');

你可能感兴趣的:(dba,sql,postgresql,mysql,数据库)