一、查看mysql配置的最大连接数
show variables like '%max_connection%';
max_connections 500
二、sql 查询mysql当前连接的数量
show status like 'Threads%';
| Threadpool_idle_threads | 0 |
| Threadpool_threads | 0 |
| Threads_cached | 29 |
| Threads_connected | 13 |
| Threads_created | 50 |
| Threads_rejected | 0 |
| Threads_running | 1 |
- Threads_connected:这个数值指的是打开的连接数,这个数据比较有价值一点
- Threads_running:这个数值指的是激活的连接数,或者说当前并发数,这个数值一般远低于connected数值.
- Threads_created:表示创建过的线程数
注意:如果发现Threads_created值过大的话,表明MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size值,查询服务器thread_cache_size的值:
三、mysql查询缓存数
show variables like 'thread_cache_size';
备注:thread_cache_size是什么
我们在MySQL服务器配置文件中设置了thread_cache_size,当客户端断开之后,服务器处理此客户的线程将会缓存起来以响应下一个客户而不是销毁(前提是缓存数未达上限)。
四、查询当你使用mysql的用户和对应的IP地址
可以查看当前哪个账户登录了,连接的是哪个库
show processlist
155 root 58.246.145.226:52413 db_test Query 0 starting show processlist
五、通过事务查询当前正在执行的sql
#查询正在执行的sql,包括sql的内容
select * from information_schema.INNODB_TRX
可以从上面得到trx_mysql_thread_id,通过trx_mysql_thread_id我可以可以知道哪个机器正在执行什么sql
#再通过trx_mysql_thread_id找到thread_id
select * from `performance_schema`.`threads` where processlist_id='10893928'
#再通过thread_id可以看到执行的sql
select * from `performance_schema`.events_statements_current where thread_id=
六、Kill掉不需要的mysql连接
#查询正在链接的用户
SELECT * from information_schema.PROCESSLIST where db='machaon_saas_00' and time<2
#通过KILL关闭正在使用mysql的人员
SELECT
CONCAT( 'KILL ', id, ';' )
FROM
information_schema.PROCESSLIST
WHERE
db = 'machaon_saas_00'
AND time <2
本文转至:https://www.cnblogs.com/zhya/p/11447978.html