MySQL性能優(yōu)化之table_cache配置參數(shù)淺析
table_cache是一個(gè)非常重要的MySQL性能參數(shù),它在5.1.3之后的版本中叫做table_open_cache。table_cache主要用于設(shè)置table高速緩存的數(shù)量。由于每個(gè)客戶端連接都會至少訪問一個(gè)表,因此此參數(shù)的值與max_connections有關(guān)。
緩存機(jī)制
當(dāng)某一連接訪問一個(gè)表時(shí),MySQL會檢查當(dāng)前已緩存表的數(shù)量。如果該表已經(jīng)在緩存中打開,則會直接訪問緩存中的表已加快查詢速度;如果該表未被緩存,則會將當(dāng)前的表添加進(jìn)緩存并進(jìn)行查詢。
在執(zhí)行緩存操作之前,table_cache用于限制緩存表的最大數(shù)目:如果當(dāng)前已經(jīng)緩存的表未達(dá)到table_cache,則會將新表添加進(jìn)來;若已經(jīng)達(dá)到此值,MySQL將根據(jù)緩存表的最后查詢時(shí)間、查詢率等規(guī)則釋放之前的緩存。
參數(shù)調(diào)優(yōu)
一般來說,可以在phpmyadmin中查看Open_tables與Opened_tables的值,也可以執(zhí)行
查看當(dāng)前的open_tables情況,如圖:

來查看這兩個(gè)參數(shù)的值。其中Open_tables是當(dāng)前正在打開表的數(shù)量,Opened_tables是所有已經(jīng)打開表的數(shù)量。
如果Open_tables的值已經(jīng)接近table_cache的值,且Opened_tables還在不斷變大,則說明mysql正在將緩存的表釋放以容納新的表,此時(shí)可能需要加大table_cache的值。對于大多數(shù)情況,
比較適合的值:
Open_tables / Opened_tables >= 0.85
Open_tables / table_cache <= 0.95
如果對此參數(shù)的把握不是很準(zhǔn),VPS管理百科給出一個(gè)很保守的設(shè)置建議:把MySQL數(shù)據(jù)庫放在生產(chǎn)環(huán)境中試運(yùn)行一段時(shí)間,然后把參數(shù)的值調(diào)整得比Opened_tables的數(shù)值大一些,并且保證在比較高負(fù)載的極端條件下依然比Opened_tables略大。
清空緩存
執(zhí)行
命令將會清空當(dāng)前所有緩存的表。
相關(guān)文章
MySQL中主從復(fù)制重復(fù)鍵問題修復(fù)方法
這篇文章主要介紹了MySQL中主從復(fù)制重復(fù)鍵問題修復(fù),需要的朋友可以參考下2014-12-12
mysql 忘記密碼的解決方法(linux和windows小結(jié))
下面是linux和windows下mysql丟失密碼的解決辦法2008-12-12
MySQL學(xué)習(xí)第四天 Windows 64位系統(tǒng)下使用MySQL
MySQL學(xué)習(xí)第四天教大家如何在Windows 64位下使用MySQL,即使用命令行方式完成操作MySQL服務(wù),感興趣的小伙伴們可以參考一下2016-05-05
圖文詳解Mysql使用left?join寫查詢語句執(zhí)行很慢問題的解決
最近工作中遇到一個(gè)非常奇怪的問題,mysql中有兩張表,test_info和test_do_info需要進(jìn)行LEFT?JOIN關(guān)聯(lián)查詢,下面這篇文章主要給大家介紹了關(guān)于Mysql使用left?join寫查詢語句執(zhí)行很慢問題的解決方法2023-04-04
MySQL對window函數(shù)執(zhí)行sum函數(shù)可能出現(xiàn)的一個(gè)Bug
這篇文章主要給大家介紹了關(guān)于MySQL對window函數(shù)執(zhí)行sum函數(shù)可能出現(xiàn)的一個(gè)Bug,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
mysql間隙鎖加鎖11個(gè)規(guī)則(案例分析)
這篇文章主要介紹了mysql間隙鎖加鎖11個(gè)規(guī)則?,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
navicat連接mysql報(bào)錯(cuò)10060的解決辦法
最近在學(xué)習(xí)中遇到了個(gè)小問題,現(xiàn)在將解決的辦法分享給同樣遇到這個(gè)問題的同學(xué),這篇文章主要給大家介紹了關(guān)于navicat連接mysql報(bào)錯(cuò)10060的解決辦法,需要的朋友可以參考下2023-03-03

