一、THREAD_CACHE
MySQL里面為了提高客戶端請求創(chuàng)建連接過程的性能,提供了一個連接池也就是 Thread_Cache池,將空閑的連接線程放在連接池中,而不是立即銷毀.這樣的好處就是,當(dāng)又有一個新的請求的時候,mysql不會立即去創(chuàng)建連接 線程,而是先去Thread_Cache中去查找空閑的連接線程,如果存在則直接使用,不存在才創(chuàng)建新的連接線程.
有關(guān)Thread_Cache在MySQL有幾個重要的參數(shù),簡單介紹如下:
thread_cache_size
Thread_Cache 中存放的最大連接線程數(shù).在短連接的應(yīng)用中Thread_Cache的功效非常明顯,因?yàn)樵趹?yīng)用中數(shù)據(jù)庫的連接和創(chuàng)建是非常頻繁的,如果不使用 Thread_Cache那么消耗的資源是非常可觀的!在長連接中雖然帶來的改善沒有短連接的那么明顯,但是好處是顯而易見的.但并不是越大越好大了反而 浪費(fèi)資源這個的確定一般認(rèn)為和物理內(nèi)存有一定關(guān)系,如下:
thread_stack
每個連接被創(chuàng)建的時候,mysql分配給它的內(nèi)存.這個值一般認(rèn)為默認(rèn)就可以應(yīng)用于大部分場景了,除非必要非則不要動它.
thread_handing
運(yùn)用Thread_Cache處理連接的方式,5.1.19添加的新特性.有兩個值可選[no-threads|one-thread-per-connection] 看字面意思大家也該猜出八九分了,呵呵,no-threads 服務(wù)器使用一個線程,one-thread-per-connection 服務(wù)器為每個客戶端請求使用一個線程.原手冊中提到,no-threads是在Linux下調(diào)試用的.