MySQL show processlist过滤

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介:

背景

有客户需要根据processlist做一些监控,需要用到过滤上面的操作。

根据某个用户过滤

mysql> select * from information_schema.processlist where User='UserName';
+----------+------------+---------------------+------+------------------+----------+------------------------------------------------------------------+------+
| ID       | USER       | HOST                | DB   | COMMAND          | TIME     | STATE                                                            | INFO |
+----------+------------+---------------------+------+------------------+----------+------------------------------------------------------------------+------+
| 18396093 | UserName | *.*.*.*:47712 | NULL | Binlog Dump GTID |  4608287 | Master has sent all binlog to slave; waiting for binlog to be up | NULL |
+----------+------------+---------------------+------+------------------+----------+------------------------------------------------------------------+------+
1 rows in set (0.00 sec)

杀死某些线程

mysql> select concat('kill ',ID,';') from information_schema.processlist where User='UserName';
+------------------------+
| concat('kill ',ID,';') |
+------------------------+
| kill 18396093;         |
| kill 22658331;         |
| kill 482;              |
+------------------------+
3 rows in set (0.00 sec)

监控统计每个用户的访问

mysql> select User,count(*) as cnt from information_schema.processlist group by user;
+-----------------+-----+
| User            | cnt |
+-----------------+-----+
| User1         | 168 |
| rep      |   1 |
| User2            |   2 |
+-----------------+-----+
3 rows in set (0.00 sec)

监控其他信息

凡是在processlist里面的都可以用来做过滤

mysql> show create table information_schema.processlist\G
*************************** 1. row ***************************
       Table: PROCESSLIST
Create Table: CREATE TEMPORARY TABLE `PROCESSLIST` (
  `ID` bigint(21) unsigned NOT NULL DEFAULT '0',
  `USER` varchar(16) NOT NULL DEFAULT '',
  `HOST` varchar(64) NOT NULL DEFAULT '',
  `DB` varchar(64) DEFAULT NULL,
  `COMMAND` varchar(16) NOT NULL DEFAULT '',
  `TIME` int(7) NOT NULL DEFAULT '0',
  `STATE` varchar(64) DEFAULT NULL,
  `INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8

参考

https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 存储 缓存
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )(一)
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )(一)
|
SQL 存储 JSON
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )(四)
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )(四)
|
SQL 存储 关系型数据库
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )(三)
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )(三)
|
SQL 存储 关系型数据库
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )(二)
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )
《MySQL高级篇》七、性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )(二)
|
SQL 存储 监控
Mysql中 慢查询日志和show profile进行sql分析
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。
362 0
|
监控 算法 安全
MySQL:5.6 大事务show engine innodb status故障一例
MySQL:5.6 大事务show engine innodb status故障一例
183 0
MySQL:5.6 大事务show engine innodb status故障一例
|
SQL 关系型数据库 MySQL
mysql show processlist Time为负数的思考
mysql show processlist Time为负数的思考
149 0
mysql show processlist Time为负数的思考
|
SQL 关系型数据库 MySQL
mysql show processlist Time为负数的思考
mysql show processlist Time为负数的思考
mysql show processlist Time为负数的思考
|
关系型数据库 MySQL
MySQL练习10——用where过滤空值信息
MySQL练习10——用where过滤空值信息!
|
SQL 关系型数据库 MySQL
MySql 过滤查询(以字母开头,以数字开头,非数字开头,非字母开头)
我们知道,SQL Server中判断一个字段的值是否为数字可以用系统自带的ISNUMERIC()函数来处理,但是MySQL数据库中则没有这个(或者是没有一个直接判断是否是数字)的函数,但MySQL为我们提供了正则表达式的函数,所以我们可以用数字的正则表达式来处理有关判断字段值是否是数字的问题,具体的MySQL语句代码示例如下: SELECT * FROM TABLE_NAME WHERE COLUMN_NAME REGEXP '^[0-9]+$'
885 1