日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql query cache_MySQL--query-cache

發布時間:2025/3/11 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql query cache_MySQL--query-cache 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

知識準備:

1、mysql 的query-cache是什么?

mysql可以把執行完成的select 語句和這個select 語句對應的結果集緩存起來;下次再用調用相同的select 語句時就直接返回結果,不是又去執行一次select 語句。

由于少了執行的這一步,所以返回結果比較快。mysql為了保證緩存的結果集與再執行一次select 語句時返回的結果集是一致的,所以;mysql會去判斷select語句

用到的表是不有變更,如果有那么緩存的結果集就作廢,為了得到正確的結果mysql只能是把select 語句再執行一次;

2、要注意的地方:

1、query-cache 是在各個session之間共享的。

2、query-cache 設置的過大那么它的維護成本也相應的變大,這個時候它反而會影響性能。

3、為了確認query-cache在當前業務場景下是否有用,最好的辦法是測試;而且隨著時間的推移,之前有用的query-cache不一定一直有用;

4、query-cache只有在select 語句完全相同而且表并沒有變更的情況下才會從query-cache中返回結果集,注意這里的相同指的是字節序列

上的相同;也就是說select 和SELECT 會被當成兩個不同的東西;select 和select 也有可能會被當成兩個不同的東西,因為它們有可以用了

不同的字符集,而這一點我們人眼是看不出來的;

5、如果一個select 查詢是某一查詢的子查詢,那么這個select 的結果也不會被緩存,也就是說query-cache只會緩存最終結果。

6、如果一個select 它是定義在stored function、event、trigger 中的那么它的結果集也不會被緩存。

7、就算是有可用的query-cache 結果集,用戶的權限不對的話也不會有返回。

8、表的變更語句包括:insert ,update,delete,truncate table,alter table,drop table,drop database。

9、如果select 中包涵有不確定函數那么結果集也不會緩存。

配置query-cache:

1、have_query_cache 這個variable 用來檢測query_cache是否開啟,注意如果是二進制包安裝的mysql這個值會永遠是YES;所以這并沒有什么卵用。

2、如果要關閉query_cache那么query_cache_size參數query_cache_type參數都要啟動的時候設置為0。

3、query_cache_limit 控制一個結果集的最大大小是多少。

4、flush query cache 和reset query cache 用于清除query_cache ;它們兩效果是等價的。

5、如果一個查詢走的是query-cache 那么Qcache_hits 這個status 會加1、不然Com_select會加1。

總結

以上是生活随笔為你收集整理的mysql query cache_MySQL--query-cache的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。