首頁  >  問答  >  主體

并发 - mysql的show status 中 thread 的含义?

MySQL使用show status like '%Thread%',得到如下显示:

+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| Delayed_insert_threads    | 0     |
| Slow_launch_threads       | 0     |
| Threads_cached            | 23    |
| Threads_connected         | 399   |
| Threads_connected_reserve | 91    |
| Threads_created           | 2173  |
| Threads_running           | 3     |
+---------------------------+-------+

关于这个显示,有一些疑问。我的问题如下:

  1. Threads_connected是不是代表连接池中目前所创建的所有连接?
  2. Threads_running是否代表所创建的所有连接中正在使用的连接?
  3. 如果上述理解是正确的,Threads_running很小而Threads_connected很大,是不是说明有很多空闲的 connection?那为何在做并发测试的时候,Threads_connected便直线上升,而不是直接使用空闲的?
迷茫迷茫2742 天前1164

全部回覆(1)我來回復

  • 高洛峰

    高洛峰2017-04-17 11:43:59

    你的理解錯了
    Threads_cached:
    線程快取中的線程數。該變數是在 MySQL 3.23.17 中新增的。

    Threads_connected:
    目前開啟的連線數。目前開啟的連線數

    已建立執行緒:
    為處理連線而建立的線程數。如果 Threads_created 很大,您可能需要增加 thread_cache_size 值。快取未命中率可以計算為 Threads_created pid by Connections。該變數是在 MySQL 3.23.31 中新增的。

    Threads_running:
    未休眠的執行緒數目前未掛起的連線數

    MYSQL官方解釋http://dev.mysql.com/doc/refman/4.1/en/server-status-variables.html#statvar_Threads_connected

    回覆
    0
  • 取消回覆