1. 程式人生 > >mysql優化之thread_cache_size

mysql優化之thread_cache_size

1、mysql伺服器的執行緒數檢視方法:

show  global status like 'Thread%';


Threads_created:建立過的執行緒數,如果發現Threads_created值過大的話,表明MySQL伺服器一直在建立執行緒,這也是比較耗資源,可以適當增加配置檔案中thread_cache_size值

2、優化引數thread_cache_size

thread_cache_size:當客戶端斷開之後,伺服器處理此客戶的執行緒將會快取起來以響應下一個客戶而不是銷燬(前提是快取數未達上限)

即可以重新利用儲存在快取中執行緒的數量,當斷開連線時如果快取中還有空間,那麼客戶端的執行緒將被放到快取中,如果執行緒重新被請求,那麼請求將從快取中讀取,如果快取中是空的或者是新的請求,那麼這個執行緒將被重新建立,如果有很多新的執行緒,增加這個值可以改善系統性能。

thread_cache_size大小的設定:

如果是短連線,適當設定大一點,因為短連線往往需要不停建立,不停銷燬,如果大一點,連線執行緒都處於取用狀態,不需要重新建立和銷燬,所以對效能肯定是比較大的提升。
對於長連線,不能保證連線的穩定性,所以設定這引數還是有一定必要,可能連線池的問題,會導致連線資料庫的不穩定性,也會出現頻繁的建立和銷燬,但這個情況比較少,如果是長連線,可以設定成小一點,一般在50-100左右。

實體記憶體設定規則:通過比較Connections 和 Threads_created 狀態的變數,可以看到這個變數的作用。(-->表示要調整的值)   根據實體記憶體設定規則如下:
     1G  ---> 8
     2G  ---> 16
     3G  ---> 32
    >3G  ---> 64

查詢thread_cache_size設定

show global status like'thread_cache_size';

優化方法:
1、mysql> set global thread_cache_size=16
2、編輯/etc/my.cnf 更改/新增
thread_concurrency = 16

3、mysql kill執行緒

mysqladmin start slave stop slave kill某個連線到mysqlServer的執行緒

==================

thread_cache_size功能在mysql資料庫配置檔案中是非常重要的一項功能了,如果對thread_cache_size優化做得好我們可以讓伺服器跑得非常快,設定不好就會發現很小訪問量就非常的卡哦。

thread_cache_size

查詢程序使用情況
 程式碼如下     複製程式碼
mysql
> show global status like ‘Thread%’; +——————-+———-+ | Variable_name | Value | +——————-+———-+ | Threads_cached | 26 | | Threads_connected | 510 | | Threads_created | 35168165 | | Threads_running | 459 | +——————-+———-+ 4 rows in set (0.01 sec) 查詢伺服器 thread_cache_size配置 程式碼如下 複製程式碼 mysql> show variables like ‘thread_cache_size’; +——————-+——-+ | Variable_name | Value | +——————-+——-+ | thread_cache_size | 32 | +——————-+——-+ 1 row in set (0.00 sec) 如果我們在MySQL伺服器配置檔案中設定了thread_cache_size,當客戶端斷開之後, 伺服器處理此客戶的執行緒將會快取起來以響應下一個客戶而不是銷燬(前提是快取數未達上限)。 Threads_created表示建立過的執行緒數,如果發現Threads_created值過大的話, 表明 MySQL伺服器一直在建立執行緒,這也是比較耗資源,可以適當增加配置檔案中thread_cache_size值, 根據調查發現以上伺服器執行緒快取thread_cache_size沒有進行設定,或者設定過小,這個值表示可以重新利用儲存在快取中執行緒的數量,當斷開 連線時如果快取中還有空間,那麼客戶端的執行緒將被放到快取中,如果執行緒重新被請求,那麼請求將從快取中讀取,如果快取中是空的或者是新的請求,那麼這個線 程將被重新建立,如果有很多新的執行緒,增加這個值可以改善系統性能.通過比較 Connections 和 Threads_created 狀態的變數,可以看到這個變數的作用。(?>表示要調整的值) 根據實體記憶體設定規則如下: 1G ?> 8 2G ?> 16 3G ?> 32 >3G ?> 64

相關推薦

mysql優化thread_cache_size

1、mysql伺服器的執行緒數檢視方法:show  global status like 'Thread%';Threads_created:建立過的執行緒數,如果發現Threads_created值過大的話,表明MySQL伺服器一直在建立執行緒,這也是比較耗資源,可以適當增

MYSQL優化優化引數thread_cache_size

以下是某門戶網站的mysql狀態例項及分析過程,絕對的第一手資料資料,很生動的體現了引數thread_cache_size優化的效果及優化該引數的必要性,希望對各位系統管理員能有幫助。 說明: 根據調查發現以上伺服器執行緒快取thread_cache_size沒有進行設定

MySQL優化——觸發器

strong ble define format def creat 存在 刪除 pda 轉載請註明出處:http://blog.csdn.net/l1028386804/article/details/46763665 觸發器是一個特殊的存儲過程,不同的是存儲過程要

MySQL優化——為用戶開通mysql權限

article ont sdn blank con ges 轉載 tail targe 轉載請註明出處:http://blog.csdn.net/l1028386804/article/details/46627263 為用戶開通mysql權限: grant

MySQL優化——集群搭建步驟具體解釋

兩個 chgrp 應用服務 集群搭建 ria 進程 ini 而且 必須 轉載請註明出處:http://blog.csdn.net/l1028386804/article/details/46833179 1 概述 MySQL Cluster 是MySQL 適合於

mysql優化索引

總結 例如 drop mysql5 建立 語句 運算操作 空間 耗時 Mysql優化之使用索引 1,索引簡介 索引是單獨一種數據結構,單獨存在的一個空間。可以把數據表裏的建立了索引的字段,進和物理地址,存在在一塊,這塊空間就是‘索引’。 查詢數據先從索引中查詢,查詢到之後,

MYSQL優化-GROUP BY

plain 2種 borde ext emp 例如 般的 查詢條件 屬性。 轉載:https://my.oschina.net/heguangdong/blog/38567 在web應用中,提倡sql簡單,避免復雜度。所以在我們公司的應用中看不到jon,子查詢等語句的存在,

mysql 第四十七篇文章~mysql優化相關join

讓我 復雜 文章 進行 order by 算法 char 出現 而是 一簡介:參考了幾位師兄,尤其是M哥大神的博客,讓我恍然大悟,趕緊記錄下二 原理: mysql的三種算法 1 Simple Nested-Loop Join 將驅動表/外部表的結果集作為循環基礎數據,然後

Mysql優化——啟用查詢緩存

sele sql優化 mit 可能 blocks 得到 size name 出現 啟用MySQL查詢緩存可以極大地減低數據庫服務器的CPU使用率,實際使用情況是:開啟前CPU使用率120%左右,開啟後降到了10%。 查看查詢緩存情況: mysql> show va

mysql優化key_buffer_size

use 表示 sta 命中 read cache row IT 分配 key_buffer_size指定索引緩沖區的大小,它決定索引處理的速度,尤其是索引讀的速度。通過檢查狀態值Key_read_requests和Key_reads,可以知道key_buffer_size設

mysql優化query_cache_size

now() ins AR 為什麽 足夠 lock stat 存儲引擎 lec MySQL查詢緩存保存查詢返回的完整結果。當查詢命中該緩存,會立刻返回結果,跳過了解析,優化和執行階段。 查詢緩存會跟蹤查詢中涉及的每個表,如果這寫表發生變化,那麽和這個表相關的所有緩存都將失效。

Mysql優化高階

一、exists和in - - - 小表驅動大表 前言: 500*10000和10000*500,在數學角度來說是沒什麼區別的,從java角度來說是這樣的: for(int i=0;i<500;i++){ for(int j;j<10000;j++){

mysql 優化開啟慢查詢日誌並分析原因

轉載:https://blog.csdn.net/haiqiao_2010/article/details/25138099 第一步.開啟mysql慢查詢 方式一:修改配置檔案 Windows:Windows 的配置檔案

mysql優化sql執行流程及表結構(schema)對效能的影響

part 1 sql執行流程(如下圖所示) 1、客戶端傳送一條查詢到伺服器。 2、伺服器通過許可權檢查後,先檢查查詢快取,命中則直接返回結果。否則進入3。 3、伺服器進行sql解析,預處理,再由優化器根據該sql涉及到的資料表的資訊計算,生成執行計劃。 4.、MySQL根據優化器生成的執行計劃,呼叫儲

mysql優化sql優化原則

  以下內容來自小馬哥視訊學習筆記。 ---------------------------------------------------------------------------------------------------------------------------------------

mysql優化資料庫隨機取一條資料

大家都知道mysql 查詢資料庫隨機取一條資料當然用rand()方法  其實這個方法是超級雞肋的,當然你愛好也無所謂,首先列舉兩個表 a表   id(主鍵 int),cardnumber(身份證號碼 char(18)),name(使用者名稱 varchar(40))

Mysql學習總結(61)——MySQL優化DBA級優化整理彙總

資料庫優化的可以從如下幾個方面著手: 1.>sql語句和索引. 2.>資料庫表結構. 3.>系統配置. 4.>硬體 2.使用MySQL的慢查詢日誌對效率有問題的sql進行監控 1.>檢視慢查詢日誌是否開啟:show variabl

Mysql優化問題定位

sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare sysbench --test=fileio --num-threads=16 --file-total-size=3G -

MySQL優化Explain命令解讀,optimizer_trace

簡述:     explain為mysql提供語句的執行計劃資訊。可以應用在select、delete、insert、update和place語句上。explain的執行計劃,只是作為語句執行過程的一個參考,實際執行的過程不一定和計劃完全一致,但是執行計劃中透露出的訊息卻可以幫助選擇更好的索引和寫出更優化的

MySQL優化——索引

索引是在儲存引擎中實現的,因此每種儲存引擎的索引都不一定完全相同,並且每種儲存引擎也不一定支援所有索引型別。 根據儲存引擎定義每個表的最大索引數和最大索引長度。所有儲存引擎支援每個表至少16個索引,總索引長度至少為256位元組。 大多數儲存引擎有更高的限制。MYSQL中索