调优 - 数据库连接 - 实时 - 用户、连接

查询数据库当前连接数
show status like 'Threads%';
值 |
释义 |
Threads_cached |
线程缓存内的线程数量 |
Threads_connected |
当前打开的连接数量, Threads_connected 跟show processlist结果相同 |
Threads_created |
创建的线程数 |
Threads_running |
正在运行的线程数(激活的连接数),这个数值一般远低于connected数值;准确的来说, Threads_running是代表当前并发数 |
一个是treads_cached这个是缓冲池中的线程个数。
一个是treads_connected这个是连接中的线程数。
第三个是Threads_created,它的含义是已经创建的线程数。
在并发数低的情况下,一般Threads_created参数是treads_cached和treads_connected参数之和。
当并发数高的情况下,Threads_created就会暴增,这个时候就需要考虑thread_cache_size来设置缓冲池的大小了。
thread_cache_size
当客户端断开之后,服务器处理此客户的线程将会缓存起来以响应下一个客户而不是销毁(前提是缓存数未达上限)
thread_cache_size根据物理内存设置规则如下:
1G ---> 8
2G ---> 16
3G ---> 32
>3G ---> 64
查询数据库当前连接信息
# mysql内
show full processlist
# 查看MySQL连接的id会不会变动
select * from information_schema.processlist;
# 除了root,各自用户可以看见各自的连接情况
值 |
释义 |
Binlog Dump |
主节点正在将二进制日志 ,同步到从节点 |
Change User |
正在执行一个 change-user 的操作 |
Close Stmt |
正在关闭一个Prepared Statement 对象 |
Connect |
一个从节点连上了主节点 |
Connect Out |
一个从节点正在连主节点 |
Create DB |
正在执行一个create-database 的操作 |
Daemon |
服务器内部线程,而不是来自客户端的链接 |
Debug |
线程正在生成调试信息 |
Delayed Insert |
该线程是一个延迟插入的处理程序 |
Drop DB |
正在执行一个 drop-database 的操作 |
Execute |
正在执行一个 Prepared Statement |
Fetch |
正在从Prepared Statement 中获取执行结果 |
Field List |
正在获取表的列信息 |
Init DB |
该线程正在选取一个默认的数据库 |
Kill |
正在执行 kill 语句,杀死指定线程 |
Long Data |
正在从Prepared Statement 中检索 long data |
Ping |
正在处理 server-ping 的请求 |
Prepare |
该线程正在准备一个 Prepared Statement |
ProcessList |
该线程正在生成服务器线程相关信息 |
Query |
该线程正在执行一个语句 |
Quit |
该线程正在退出 |
Refresh |
该线程正在刷表,日志或缓存;或者在重置状态变量,或者在复制服务器信息 |
Register Slave |
正在注册从节点 |
Reset Stmt |
正在重置 prepared statement |
Set Option |
正在设置或重置客户端的 statement-execution 选项 |
Shutdown |
正在关闭服务器 |
Sleep |
正在等待客户端向它发送执行语句 |
Statistics |
该线程正在生成 server-status 信息 |
Table Dump |
正在发送表的内容到从服务器 |
Time |
Unused |