當(dāng)前位置:首頁 >  站長 >  數(shù)據(jù)庫 >  正文

如何在mysql進(jìn)行查詢緩存及失敗的解決方法

 2021-02-04 17:23  來源: 腳本之家   我來投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過

這篇文章主要介紹了如何在mysql進(jìn)行查詢緩存及失敗的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

都知道函數(shù)在使用前需要弄清楚參數(shù)的屬性,這樣才能對(duì)函數(shù)的使用有較好的了解。有些小伙伴學(xué)習(xí)了查詢緩存后,直接進(jìn)行了下一步的實(shí)戰(zhàn)操作。這里小編想提醒大家,開始操作之前一定要先設(shè)置參數(shù),不然就會(huì)出現(xiàn)問題。下面我們來完整的講一下mysql查詢緩存的步驟以及緩存失效的分析。

1.配置參數(shù)

(1) have_query_cache表示是否支持查詢緩存,YES表示支持

(2) query_cache_type表示緩存類型,OFF表示關(guān)閉查詢緩存,ON表示開啟查詢緩存,DEMAND表示用戶自定義查詢緩存

(3) query_cache_limit表示支持的最大單條查詢sql數(shù)據(jù)量

(4) query_cache_min_res_unit表示查詢緩存最小單位

(5) query_cache_size表示查詢緩存空間大小

(6) query_cache_wlock_invalidate表示查詢緩存是否支持寫鎖,OFF表示不支持,即讀取數(shù)據(jù)不考慮寫鎖,ON表示支持,即讀取數(shù)據(jù)會(huì)被寫鎖阻塞

MySQL的查詢緩存默認(rèn)是關(guān)閉的,需要手動(dòng)配置參數(shù)query cache type,來開啟查詢緩存。query cache type該參數(shù)的可取值有三個(gè) :

1)OFF或0 :查詢緩存功能關(guān)閉;

2)ON或1 :查詢緩存功能打開,SELECT的結(jié)果符合緩存條件即會(huì)緩存,否則,不予緩存,顯示指定SQL_NO_CACHE,不予緩存

3)DEMAND或2 :查詢緩存功能按需進(jìn)行,顯示指定SQL_CACHE的SELECT語句才會(huì)緩存;其他均不予緩存。

在/usr/my.cnf配置中,增加以下配置 :

2.開啟mysql的查詢緩存

query_cache_type=1

配置完畢之后,重啟服務(wù)即可生效;

然后就可以在命令行執(zhí)行SQL語句進(jìn)行驗(yàn)證,執(zhí)行一條比較耗時(shí)的SQL語句,然后再多執(zhí)行幾次,查看后面幾次的執(zhí)行時(shí)間;獲取通過查看查詢緩存的緩存命中數(shù),來判定是否走查詢緩存。

查詢緩存使用

(1) 只有字符串相等查詢sql才使用相同緩存,即select name from city與SELECT name FROM city不使用同一個(gè)緩存。

(2) 在query_cache_type為ON的情況下,默認(rèn)所有查詢都使用緩存,我們可以使用sql_no_cache顯示指定某個(gè)查詢不使用緩存

query_cache_type=1

(3) 在query_cache_type為DEMAND的情況下,需要使用sql_cache指定某個(gè)查詢使用緩存

select sql_cache name from city;

3.緩存失效:

在表的結(jié)構(gòu)或數(shù)據(jù)發(fā)生改變時(shí),查詢緩存中的數(shù)據(jù)不再有效。如INSERT、UPDATE、 DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE會(huì)導(dǎo)致緩存數(shù)據(jù)失效。所以查詢緩存適合有大量相同查詢的應(yīng)用,不適合有大量數(shù)據(jù)更新的應(yīng)用。

一旦表數(shù)據(jù)進(jìn)行任何一行的修改,基于該表相關(guān)cache立即全部失效。

以上就是我們?cè)趍ysql進(jìn)行查詢緩存需要進(jìn)行的步驟,在參數(shù)的設(shè)置方面再次提醒大家。如果緩存失效小伙伴們也不要著急,對(duì)應(yīng)小編的分析找找方法。

來源:腳本之家

鏈接:https://www.jb51.net/article/205124.htm

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
mysql

相關(guān)文章

  • MySQL5.7 集群配置的步驟

    這篇文章主要介紹了MySQL5.7集群配置的步驟,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下

    標(biāo)簽:
    mysql
  • MySQL中觸發(fā)器和游標(biāo)的介紹與使用

    這篇文章主要給大家介紹了關(guān)于MySQL中觸發(fā)器和游標(biāo)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

    標(biāo)簽:
    mysql
  • MySQL中exists、in及any的基本用法

    這篇文章主要給大家介紹了關(guān)于MySQL中exists、in及any的基本用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

    標(biāo)簽:
    mysql
  • MySQL正確修改最大連接數(shù)的3種方案

    這篇文章主要給大家介紹了關(guān)于MySQL正確修改最大連接數(shù)的3種方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

    標(biāo)簽:
    mysql
  • 教你怎么在Windows系統(tǒng)上手動(dòng)搭建MySql數(shù)據(jù)庫

    1.已經(jīng)購買好的騰訊云輕量應(yīng)用服務(wù)器。2.作者本次演示使用的系統(tǒng)是WindowsServer2019,其他windows版本也可以,操作流程大同小異。3.使用Windows遠(yuǎn)程桌面連接騰訊云輕量服務(wù)器。

熱門排行

信息推薦