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