SHOW PROCESSLIST; -- 用于显示用户运行线程
Id | 线程的唯一标志,可以根据它 kill 线程 User 启动这个线程的用户,普通用户只能看到自己的线程 |
Host | 哪个 IP 端口发起的连接 |
db | 操作的数据库 |
Command | 线程的命令 https://dev.mysql.com/doc/refman/5.7/en/thread-commands.html |
Time | 操作持续时间,单位秒 State 线程状态,比如查询可能有 copyingtotmptable,Sortingresult,Sendingdata https://dev.mysql.com/doc/refman/5.7/en/general-thread-states.html |
Info | SQL 语句的前 100 个字符,如果要查看完整的 SQL 语句,用 SHOW FULL PROCESSLIST |
SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist; -- 查询连接数,方便在数据库连接过多的时候杀掉连接进程
SHOW GLOBAL VARIABLES LIKE '%timeout%' -- 查询所有连接超时相关参数
SHOW GLOBAL VARIABLES LIKE 'wait_timeout'; -- 非交互式超时时间,如 JDBC 程序
SHOW GLOBAL VARIABLES LIKE 'interactive_timeout'; -- 交互式超时时间,如数据库工具
SHOW GLOBAL STATUS LIKE 'Thread%'; -- 查看MySQL当前有多少个连接
Threads_cached: | 缓存中的线程连接数。 |
Threads_connected: | 当前打开的连接数。 |
Threads_created: | 为处理连接创建的线程数。 |
Threads_running: | 非睡眠状态的连接数,通常指并发连接数。 |
Threadpool_idle_threads: | -- 表示线程池中的空闲线程数。 |
Threadpool_threads: | -- 表示线程池中的所有线程数。 |
Threads_rejected : | --? |
SHOW PROCESSLIST; -- 查看SQL的执行状态。
一些常见的状态:
SHOW VARIABLES LIKE 'max_connections'; -- MySQL服务允许的最大连接数 在5.7版本中默认是151个,最大可以设置成16384(2^14)。
show的参数说明:
1、级别:会话session级别(默认);全局global级别
2、动态修改:set,重启后失效;永久生效,修改配置文件/etc/my.cnf
例:set global max_connections=1000;
SHOW STATUS LIKE'Last_query_cost'; -- 上次查询开销成本
SHOW VARIABLES LIKE 'optimizer_trace'; -- mysql优化器的追踪(默认是关闭的)
SET optimizer_trace='enabled=on'; -- 打开mysql优化器追踪
SELECT * FROM 'information_schema'.'optimizer_trace'\G -- 查询索引优化器记录 json格式
expanded_query是优化后的SQL语句。
considered_execution_plans里面列出了所有的执行计划。
SHOW VARIABLES LIKE 'datadir'; -- mysql数据库存放数据的路径
SHOW ENGINES; -- 查询mysql支持的存储引擎
SHOW VARIABLES LIKE '%innodb_buffer_pool%'; -- 查询mysql缓冲池信息 -- Buffer Pool默认大小是128M(134217728字节),可以调整。
SHOW VARIABLES LIKE'innodb_change_buffer_max_size'; -- Change Buffer(写缓冲)。写多读少的业务,调大这个值,代表Change Buffer占Buffer Pool的比例,默认25%。
SHOW VARIABLES LIKE 'innodb_log%'; -- mysql日志参数信息
SHOW VARIABLES LIKE'innodb_log_buffer_size'; -- 保存即将要写入日志文件的缓冲数据大小,默认16M
SHOW STATUS LIKE 'innodb_row_lock_%'; -- mysql查询一些行锁的信息
Innodb_row_lock_current_waits: | 当前正在等待锁定的数量; |
Innodb_row_lock_time : | 从系统启动到现在锁定的总时间长度,单位 ms; |
Innodb_row_lock_time_avg : | 每次等待所花平均时间; |
Innodb_row_lock_time_max: | 从系统启动到现在等待最长的一次所花的时间; |
Innodb_row_lock_waits : | 从系统启动到现在总共等待的次数。 |
SELECT * FROM information_schema.INNODB_TRX; -- 当前运行的所有事务 ,还有具体的语句
SELECT * FROM information_schema.INNODB_LOCKS; -- 当前出现的锁
SELECT * FROM information_schema.INNODB_LOCK_WAITS; -- 锁等待的对应关系
SHOW STATUS 用于查看 MySQL 服务器运行状态(重启后会清空),有 session和global两种作用域,格式:参数-值。
可以用like带通配符过滤
SHOW GLOBAL STATUS LIKE 'com_select';-- 查看 select 次数