手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

MySQL開(kāi)啟查詢緩存

2025-02-18 13:57:53 1496

MySQL中的查詢緩存能夠緩存SELECT查詢語(yǔ)句及對(duì)應(yīng)的查詢結(jié)果信息。如果再次有相同的SELECT語(yǔ)句查詢數(shù)據(jù),則MySQL會(huì)從查詢緩存中直接返回的數(shù)據(jù),而不必再對(duì)SQL語(yǔ)句進(jìn)行解析、優(yōu)化和查詢等,有效避免了相同的查詢時(shí)再次讀取磁盤上存儲(chǔ)的數(shù)據(jù),大大提升了數(shù)據(jù)的查詢性能。


在MySQL命令行中查看是否開(kāi)啟查詢緩存。

image.png

其中,幾個(gè)重要的參數(shù)說(shuō)明如下:

·have_query_cache:MySQL在安裝時(shí)是否配置支持查詢緩存。YES表示支持查詢緩存;NO表示不支持查詢緩存。

·query_cache_size:查詢緩存所能容納的數(shù)據(jù)大小,也就是查詢緩存的容量。

·query_cache_type:查詢緩存是否開(kāi)啟。OFF表示關(guān)閉查詢緩存;ON表示開(kāi)啟查詢緩存,但是使用SQL_NO_CACHE提示的SELECT查詢語(yǔ)句不會(huì)使用查詢緩存;DEMAND同樣表示開(kāi)啟查詢緩存,但是只有使用SQL_CACHE提示的SELECT查詢語(yǔ)句才會(huì)使用查詢緩存。

MySQL命令行不支持開(kāi)啟查詢緩存。

MySQL命令行不支持開(kāi)啟查詢緩存。


mysql> SET SESSION query_cache_type = ON;ERROR 1651 (HY000): Query cache is disabled; restart the server with query_cache_type=1 to enable it


開(kāi)啟查詢緩存需要在MySQL的配置文件my.cnf或者my.ini中進(jìn)行配置。此時(shí)有兩種方式開(kāi)啟查詢緩存,一種方式是將query_cache_type選項(xiàng)設(shè)置為ON,在my.cnf或者my.ini文件中的[mysqld]下進(jìn)行如下配置:


query_cache_size = 20Mquery_cache_type = ON


接下來(lái)重啟MySQL服務(wù)器即可開(kāi)啟查詢緩存。

此時(shí),多次執(zhí)行如下SQL語(yǔ)句會(huì)直接返回查詢緩存中的數(shù)據(jù),而不必再次查詢數(shù)據(jù)庫(kù)。


SELECT t_name, t_price, t_category, t_stock FROM t_goods WHERE id = 1;


如果不想直接返回查詢緩存中的數(shù)據(jù),則可以使用如下SQL語(yǔ)句查詢數(shù)據(jù)。


SELECT SQL_NO_CACHE t_name, t_price, t_category, t_stock FROM t_goods WHERE id = 1;


另一種開(kāi)啟查詢緩存的方式是將query_cache_type選項(xiàng)設(shè)置為DEMAND,在my.cnf或者my.ini文件中的[mysqld]下進(jìn)行如下配置:


query_cache_size = 20Mquery_cache_type = DEMAND


同樣需要重啟MySQL服務(wù)器才能生效。

此時(shí),多次執(zhí)行如下SQL語(yǔ)句才能使用查詢緩存。


SELECT SQL_CACHE t_name, t_price, t_category, t_stock FROM t_goods WHERE id = 1;


如果不需要使用查詢緩存,則可以執(zhí)行如下SQL語(yǔ)句。


SELECT t_name, t_price, t_category, t_stock FROM t_goods WHERE id = 1;


注意:當(dāng)數(shù)據(jù)表的數(shù)據(jù)發(fā)生變更時(shí),MySQL會(huì)清空查詢緩存中的相關(guān)數(shù)據(jù)。另外,在MySQL 8.x版本中,查詢緩存已經(jīng)被移除,也就是說(shuō)在 MySQL 8.x 及更高版本中,無(wú)法再使用查詢緩存這一特性。這是因?yàn)樵趯?shí)際應(yīng)用中,查詢緩存的維護(hù)成本較高,特別是在數(shù)據(jù)頻繁變更的場(chǎng)景下,緩存的更新和清理操作會(huì)帶來(lái)額外的性能開(kāi)銷,而且緩存命中率可能并不理想,所以 MySQL 官方?jīng)Q定在新版本中移除該功能。


對(duì)于使用低于 8.x 版本 MySQL 的用戶來(lái)說(shuō),在使用查詢緩存時(shí)也需要謹(jǐn)慎評(píng)估。一方面,要根據(jù)實(shí)際的業(yè)務(wù)場(chǎng)景和數(shù)據(jù)特點(diǎn)來(lái)合理配置查詢緩存的大小和類型。如果業(yè)務(wù)中存在大量重復(fù)的查詢,且數(shù)據(jù)更新頻率較低,那么開(kāi)啟查詢緩存可以顯著提升性能;另一方面,要時(shí)刻關(guān)注數(shù)據(jù)表的變更情況,因?yàn)槊看螖?shù)據(jù)變更都會(huì)導(dǎo)致相關(guān)緩存數(shù)據(jù)被清空,頻繁的數(shù)據(jù)變更可能會(huì)使查詢緩存失去意義。


藍(lán)隊(duì)云官網(wǎng)上擁有完善的技術(shù)支持庫(kù)可供參考,大家可自行查閱,更多技術(shù)問(wèn)題,可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。更多技術(shù)知識(shí),藍(lán)隊(duì)云期待與你一起探索。



提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: