<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一、連接數 ### **設置** 通過配置文件中的max_connections參數來設置; ### **監控** 查看允許的最大并發連接數: ``` show global variables like '%max_connections%'; ``` 查看線程相關的狀態變量; ``` show status like 'Threads%'; ``` Threads_cached:緩存中的線程連接數,該變量在嵌入式服務器(libmysqld)無意義;當前線程緩存還有多少線程; Threads_connected:當前打開的連接數,該值和show full processlist;輸出記錄總數一樣;當前已連接的MySQL線程數。這個值不會超過max_connections,也許會超過1或2個,不用管它; Threads_created:為處理連接而創建的線程數。如果該值很大,可能要增加thread_cache_size。緩存未命中率=Theads_created/Connections; Threads_running:非睡眠狀態的連接數,通常指并發連接數;表示當前正在運行的連接數,這個數會遠小于Threads_connected,這是正常情況; ## 二、進程分析 ``` show full processlist ``` 典型結果界面: ![](https://img.kancloud.cn/3b/99/3b998d6d53553620be7f508751b157d4_1075x379.png) >[danger] > 1、如果沒有為普通用戶賦予process權限,那么以該用戶登錄,在執行命令show full processlist的時候,只能看到該用戶的執行進程,如果做了授權或以root登錄,則可以看到全部的執行進程。 > 2、grant process on *.* to 'user'@'%'; > 如果發現持續耗時的進程,可以用kill結束; ``` mysql> kill ID 殺掉進程 ``` 如果是root帳號,你能看到所有用戶的當前連接(thread)。如果是其它普通帳號,只能看到自己占用的連接; | 名稱 | 說明 | | --- | --- | | id | 當前的標識,你要 kill 一個語句的時候,就需要用到這個id | | user | 當前進程所屬的用戶| | host | 當前進程是從哪個 ip 的哪個端口上連接過來的 | | db | 當前進程連接的是 哪個數據庫 | | command | 當前連接的執行的命令,一般就是休眠( sleep ),查詢( query ),連接( connect ) | | time | 當前進程當前狀態持續的時間,單位是秒 | | state | 當前進程的 sql 語句的狀態;state 只是語句執行中當前所處的某一個狀態,一個 sql 語 句,以查詢為例,可能需要經過 copying to tmp table , Sorting result , Sending data 等狀態才 可以完成;具體的狀態明細,參考下面的表格; | | info | 當前進程的具體sql 語 句 | ### **線程命令(Command)值** 僅列常見的,不常見的可以網上搜索,沒必要這里列了; | **命令名** | **詳細解釋** | | :-: | :-: | | Query| 該線程正在執行一個語句。 | | Sleep | 線程正在等待客戶端向其發送新的語句。| ### **線程狀態(State)值** 僅列常見的,不常見的可以網上搜索,沒必要這里列了; | **狀態名** | **詳細解釋** | | :-: | :-: | | Copying to tmp table | 服務器正在復制磁盤到內存的臨時表,是直接在磁盤創建的臨時表而并非從內存轉到磁盤的臨時表。| | Sending data | 線程正在讀取和處理SELECT語句的行,并將數據發送到客戶端。由于在此狀態期間發生的操作往往執行大量的磁盤訪問(讀取),所以在給定查詢的整個生命周期內通常是最長的運行狀態。| | Sorting result | 正在為 GROUP BY 做排序。 | | Sorting for order | 正在為 ORDER BY 做排序。 | ## 三、慢查詢和長事務 ## **慢查詢** 若有 Command 為 Query ,Time 很大的線程在列表中,那么這個線程就是在執行一個慢查詢。Info 字段能看出來對應的 SQL ; ## **長事務** 可用下面的語句,找出長事務線程: ~~~sql select t.*,to_seconds(now())-to_seconds(t.trx_started) idle_time from INFORMATION_SCHEMA.INNODB_TRX t\G; ~~~ 查詢結果中,idle_time 過大的事務就是長事務。輸出結果中,`trx_mysql_thread_id`? 是對應的線程標識;
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看