- 功能:
SHOW PROCESSLIST
语句会显示当前 MySQL 服务器中所有活动连接的相关信息,包括正在执行的 SQL 语句。
- 示例:在 MySQL 客户端(如 MySQL 命令行工具、Navicat 等)中执行以下语句:
- 结果解读:
Id
:连接的唯一标识符。
User
:执行查询的用户。
Host
:连接的客户端主机。
db
:当前连接使用的数据库。
Command
:当前执行的命令类型,如 Query
表示正在执行查询,Sleep
表示连接处于空闲状态。
Time
:查询已经执行的时间(以秒为单位)。
State
:查询的当前状态,如 Sorting result
、Sending data
等。
Info
:正在执行的 SQL 语句内容。
- 筛选特定查询:可以结合
WHERE
子句来筛选特定的连接或查询。例如,只查看执行时间超过 10 秒的查询:
SHOW PROCESSLIST WHERE Time > 10;
- 功能:
INFORMATION_SCHEMA.PROCESSLIST
表存储了与 SHOW PROCESSLIST
语句类似的信息,你可以使用 SQL 查询语句对其进行更灵活的操作。
- 示例:
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
- 优势:可以使用更复杂的 SQL 操作,如排序、筛选、分组等。例如,按照执行时间降序排列,查看前 5 个执行时间最长的查询:
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
ORDER BY Time DESC
LIMIT 5;
- 功能:通用查询日志会记录 MySQL 服务器接收到的所有 SQL 语句,包括查询、插入、更新、删除等操作。
- 临时开启:在 MySQL 客户端中执行以下语句可以临时开启通用查询日志:
SET GLOBAL general_log = 'ON';
你可以通过以下语句查看日志文件的位置:
SHOW VARIABLES LIKE 'general_log_file';
临时开启的设置在 MySQL 服务器重启后会失效。
- 永久开启:需要修改 MySQL 的配置文件(如
my.cnf
或 my.ini
)。在 [mysqld]
部分添加或修改以下配置项:
general_log = 1
general_log_file = /var/log/mysql/mysql.log
然后重启 MySQL 服务使配置生效。
- 注意事项:开启通用查询日志会对服务器性能产生一定影响,因为需要将每个 SQL 语句记录到日志文件中,不建议在生产环境长期开启。
- 功能:慢查询日志会记录执行时间超过指定阈值的 SQL 语句,通过分析慢查询日志可以找出执行效率低下的查询。
- 配置慢查询日志:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;
- 永久开启:修改 MySQL 配置文件,在
[mysqld]
部分添加或修改以下配置项:
slow_query_log = 1
long_query_time = 2
slow_query_log_file = /var/log/mysql/mysql-slow.log
然后重启 MySQL 服务。
- 查看慢查询日志:可以使用文本编辑器打开慢查询日志文件查看其中记录的 SQL 语句。也可以使用工具(如
pt-query-digest
)对慢查询日志进行分析。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)