Mysql中的查詢緩存Query_cache有什么作用?相信大部分人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。
目前創(chuàng)新互聯(lián)公司已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、鹿寨網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。mysql> show variables like '%query_cache%'; +------------------------------+-------------+ | Variable_name | Value | +------------------------------+-------------+ | have_query_cache | YES | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 16106127360 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | +------------------------------+-------------+ 6 rows in set (0.01 sec)
其中:
query_cache_type: 是否開啟緩存功能,取值為ON, OFF, DEMAND,默認(rèn)值為ON
- 值為OFF或0時(shí),查詢緩存功能關(guān)閉;
- 值為ON或1時(shí),查詢緩存功能打開,SELECT的結(jié)果符合緩存條件即會(huì)緩存,否則,不予緩存,顯式指定SQL_NO_CACHE,不予緩存;
- 值為DEMAND或2時(shí),查詢緩存功能按需進(jìn)行,顯式指定SQL_CACHE的SELECT語句才會(huì)緩存;其它均不予緩存
query_cache_wlock_invalidate:表示當(dāng)有其他客戶端正在對(duì)MyISAM表進(jìn)行寫操作時(shí),如果查詢?cè)趒uery cache中,是否返回cache結(jié)果還是等寫操作完成再讀表獲取結(jié)果。
query_cache_limit 指定單個(gè)查詢能夠使用的緩沖區(qū)大小,缺省為1M;
query_cache_min_res_unit為系統(tǒng)分配的最小緩存塊大小,默認(rèn)是4KB,設(shè)置值大對(duì)大數(shù)據(jù)查詢有好處,但如果你的查詢都是小數(shù)據(jù)查詢,就容易造成內(nèi)存碎片和浪費(fèi);query_cache_size:表示緩存的大小。
了解了以上的指標(biāo)后我們就可以在mysql的配置文件my.cnf中進(jìn)行設(shè)置。然后重啟mysl服務(wù)器即可。在[mysqld]下面添加參數(shù)。一般是設(shè)置query_cache_size和query_cache_type兩項(xiàng)。
2、上面查看的是我們進(jìn)行緩存的配置,它一般從配置文件中讀取值,但是有時(shí)候我們需要實(shí)時(shí)查看當(dāng)前mysql中的數(shù)據(jù)緩存大小。
mysql> show status like '%qcache%'; +-------------------------+----------+ | Variable_name | Value | +-------------------------+----------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 1031832 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 16489053 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 1 | +-------------------------+----------+ 8 rows in set (0.00 sec)
解釋:
Qcache_free_memory:緩存中的空閑內(nèi)存。
Qcache_total_blocks:緩存中塊的數(shù)量。
Qcache_lowmem_prunes:緩存出現(xiàn)內(nèi)存不足并且必須要進(jìn)行清理以便為更多查詢提供空間的次數(shù)。這個(gè)數(shù)字最好長(zhǎng)時(shí)間來看;如果這個(gè) 數(shù)字在不斷增長(zhǎng),就表示可能碎片非常嚴(yán)重,或者內(nèi)存很少。如何確定就需要查看Qcache_free_blocks和Qcache_free_memory 兩項(xiàng)指標(biāo)。
3、清空緩存:
flush query cache命令
加大緩存有助于我們查詢的效率提高:
這里舉個(gè)例子:
mysql> use mob_adn Database changed mysql> select count(*) from creative_output; +----------+ | count(*) | +----------+ | 87151154 | +----------+ 1 row in set (3 min 18.29 sec) mysql> select count(*) from creative_output; +----------+ | count(*) | +----------+ | 87151154 | +----------+ 1 row in set (0.00 sec) mysql> select count(*) from creative_output; +----------+ | count(*) | +----------+ | 87151154 | +----------+ 1 row in set (0.00 sec)
Query_cache的作用的簡(jiǎn)略介紹,詳細(xì)使用情況還需要大家自己親自動(dòng)手使用過才能領(lǐng)會(huì)。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。