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

MySQL開啟查詢緩存

2025-02-18 13:57:53 1504

MySQL中的查詢緩存能夠緩存SELECT查詢語句及對應的查詢結果信息。如果再次有相同的SELECT語句查詢數據,則MySQL會從查詢緩存中直接返回的數據,而不必再對SQL語句進行解析、優化和查詢等,有效避免了相同的查詢時再次讀取磁盤上存儲的數據,大大提升了數據的查詢性能。


在MySQL命令行中查看是否開啟查詢緩存。

image.png

其中,幾個重要的參數說明如下:

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

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

·query_cache_type:查詢緩存是否開啟。OFF表示關閉查詢緩存;ON表示開啟查詢緩存,但是使用SQL_NO_CACHE提示的SELECT查詢語句不會使用查詢緩存;DEMAND同樣表示開啟查詢緩存,但是只有使用SQL_CACHE提示的SELECT查詢語句才會使用查詢緩存。

MySQL命令行不支持開啟查詢緩存。

MySQL命令行不支持開啟查詢緩存。


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


開啟查詢緩存需要在MySQL的配置文件my.cnf或者my.ini中進行配置。此時有兩種方式開啟查詢緩存,一種方式是將query_cache_type選項設置為ON,在my.cnf或者my.ini文件中的[mysqld]下進行如下配置:


query_cache_size = 20Mquery_cache_type = ON


接下來重啟MySQL服務器即可開啟查詢緩存。

此時,多次執行如下SQL語句會直接返回查詢緩存中的數據,而不必再次查詢數據庫。


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


如果不想直接返回查詢緩存中的數據,則可以使用如下SQL語句查詢數據。


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


另一種開啟查詢緩存的方式是將query_cache_type選項設置為DEMAND,在my.cnf或者my.ini文件中的[mysqld]下進行如下配置:


query_cache_size = 20Mquery_cache_type = DEMAND


同樣需要重啟MySQL服務器才能生效。

此時,多次執行如下SQL語句才能使用查詢緩存。


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


如果不需要使用查詢緩存,則可以執行如下SQL語句。


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


注意:當數據表的數據發生變更時,MySQL會清空查詢緩存中的相關數據。另外,在MySQL 8.x版本中,查詢緩存已經被移除,也就是說在 MySQL 8.x 及更高版本中,無法再使用查詢緩存這一特性。這是因為在實際應用中,查詢緩存的維護成本較高,特別是在數據頻繁變更的場景下,緩存的更新和清理操作會帶來額外的性能開銷,而且緩存命中率可能并不理想,所以 MySQL 官方決定在新版本中移除該功能。


對于使用低于 8.x 版本 MySQL 的用戶來說,在使用查詢緩存時也需要謹慎評估。一方面,要根據實際的業務場景和數據特點來合理配置查詢緩存的大小和類型。如果業務中存在大量重復的查詢,且數據更新頻率較低,那么開啟查詢緩存可以顯著提升性能;另一方面,要時刻關注數據表的變更情況,因為每次數據變更都會導致相關緩存數據被清空,頻繁的數據變更可能會使查詢緩存失去意義。


藍隊云官網上擁有完善的技術支持庫可供參考,大家可自行查閱,更多技術問題,可以直接咨詢。同時,藍隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。更多技術知識,藍隊云期待與你一起探索。



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

這條文檔是否有幫助解決問題?

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

在文檔使用中是否遇到以下問題: