mysql学习笔记

  • 今天学到了一个新函数的使用方法 ROW_NUMBER() 主要目的是给数据一个行号

原sql

SELECT pw.phid_worker, pw.phid_project, pw.phid_work_type FROM project_worker pw
INNER JOIN (
SELECT phid_worker, phid_project, MAX(entry_time) AS max_entry_time
FROM project_worker
GROUP BY phid_worker, phid_project
) pw2 ON pw.phid_worker = pw2.phid_worker
AND pw.phid_project = pw2.phid_project
AND pw.entry_time = pw2.max_entry_time

这样使用了子查询效率非常差![https://img-blog.csdnimg.cn/f4953a6b3df8485580c7a384f3ea95fd.png](https://img-blog.csdnimg.cn/8d4780f961f1470fb3facd91ae2fc1e6.png
)

新sql:

SELECT phid_worker, phid_project, phid_work_type
FROM (
SELECT pw.*,
ROW_NUMBER() OVER (PARTITION BY phid_worker, phid_project ORDER BY entry_time DESC) AS row_num
FROM project_worker pw
) pw2
WHERE row_num = 1;

在这里插入图片描述

这样相当于按工人和项目分组之后按时间排序,取的是每个人每个项目最晚进场时间的一条。

  • 当前发现服务器mysqld占用率为200%

SHOW PROCESSLIST可以查询到当前执行的查询列表
在这里插入图片描述
Id:连接线程的唯一标识符。
User:连接使用的 MySQL 用户名。
Host:连接的来源主机名或 IP 地址。
db:当前正在使用的数据库名。如果用户没有选择任何数据库,则该字段为 NULL。
Command:当前执行的 MySQL 命令类型,如 SLEEP, Query, Connect 等等。
Time:连接的持续时间,以秒为单位。如果是空闲连接,则该字段为 NULL。
State:查询状态。例如,如果正在进行排序,则此字段可能包含 “Sorting result” 等信息。
Info:MySQL 的当前查询或命令。如果用户没有发出任何命令,则该字段为空。
其中,Command 和 State 字段的值最为多样化。下面是常见的一些 Command 和 State 字段的含义:

Command 字段的常见值:

  • Query: 表示当前正在执行 SQL 查询。
  • Sleep: 表示当前连接正在等待新的请求。
  • Connect: 表示当前连接正在连接 MySQL 服务器。
  • Binlog Dump: 表示当前连接正在复制二进制日志。

State 字段的常见值:

  • Sending data: 表示 MySQL 正在发送数据给客户端。
  • Copying to tmp table: 表示 MySQL 正在将数据复制到临时表中。
  • Sorting result: 表示 MySQL 正在对查询结果进行排序。
  • Locked: 表示 MySQL 正在等待锁定。
  • Waiting for table metadata lock: 表示 MySQL 正在等待表元数据锁

我们一般使用show processlist

  • show processlist 如何批量清除进程

– 在navicate查询页面, 使用如下sql语句
select concat(“kill”, ID, “;”) as command
from information_schema.PROCESSLIST
where HOST regexp “some condtion”;

把结果复制执行即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值