国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

MySQL query_cache_type 參數與使用詳解

瀏覽:34日期:2023-10-01 12:15:21
MySQL設置查詢緩存的用意:

把查詢到的結果緩存起來,下次再執行相同查詢時就可以直接從結果集中取;這樣就比重新查一遍要快的多。

查詢緩存的最終結果是事與愿違:

之所以查詢緩存并沒有能起到提升性能的做用,客觀上有如下兩點原因

1、把SQL語句的hash值作為鍵,SQL語句的結果集作為值;這樣就引起了一個問題如 select user from mysql.user 和 SELECT user FROM mysql.user

這兩個將會被當成不同的SQL語句,這個時候就算結果集已經有了,但是一然用不到。

2、當查詢所基于的低層表有改動時與這個表有關的查詢緩存都會作廢、如果對于并發度比較大的系統這個開銷是可觀的;對于作廢結果集這個操作也是要用并發

訪問控制的,就是說也會有鎖。并發大的時候就會有Waiting for query cache lock 產生。

3、至于用不用還是要看業務模型的。

如果何配置查詢緩存:

query_cache_type 這個系統變量控制著查詢緩存工能的開啟的關閉。

query_cache_type=0時表示關閉,1時表示打開,2表示只要select 中明確指定SQL_CACHE才緩存。

這個參數的設置有點奇怪,1、如果事先查詢緩存是關閉的然而用 set @@global.query_cache_type=1; 會報錯

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

2、如果事先是打開著的嘗試去閉關它,那么這個關閉也是不完全的,這種情況下查詢還是會去嘗試查找緩存。

最好的關閉查詢緩存的辦法就是把my.cnf 中的query_cache_type=0然后再重啟mysql。

查詢緩存相關的系統變量:

have_query_cache表示這個mysql版本是否支持查詢緩存。

query_cache_limit 表示單個結果集所被允許緩存的最大值。

query_cache_min_res_unit每個被緩存的結果集要占用的最小內存。

query_cache_size用于查詢緩存的內存大小。

如何監控查詢緩存的命中率:

Qcache_free_memory查詢緩存目前剩余空間大小。

Qcache_hits  查詢緩存的命中次數。

Qcache_inserts  查詢緩存插入的次數。

也就是說緩存的命中率為 Qcache_hits/(Qcache_hits+Qcache_inserts)

一般單獨設置這個可不行,得結合,建議看一下下面的文章

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 99久99久6久热在线播放 | 国产成人高清在线观看播放 | 美女视频网站永久免费观看软件 | 午夜不卡av免费 | 国产成人亚洲精品77 | 精品成人网 | 理论片日韩 | 久久91精品牛牛 | 久久免费视频播放 | 国产精品久久久久久久9999 | 欧美不卡一区二区三区 | 成年男女男精品免费视频网站 | 免费一级片网站 | 久久99精品久久久久久秒播放器 | 久久96国产精品久久久 | 日本高清福利视频在线观看 | 国产成人综合日韩精品婷婷九月 | 久久只有这才是精品99 | 色片在线播放 | 6一12呦女精品 | 欧美成人在线影院 | 一级a爰片久久毛片 | 亚洲人成网站在线观看播放 | 美女在线看永久免费网址 | 国产在线精品福利一区二区三区 | 亚洲欧洲国产成人精品 | 国产真实乱子伦xxxxchina | 91成人免费观看网站 | 久久久久久久99精品免费观看 | 国产精自产拍久久久久久蜜 | 欧美高清视频在线观看 | 欧美一区二区视频在线观看 | 国产精品亚洲一区二区在线观看 | 亚洲网站一区 | 欧美日韩一区二区三区高清不卡 | 亚洲欧美一级视频 | 亚洲国产高清视频在线观看 | 国内在线播放 | 天天看片天天爽 | 精品欧美一区二区三区四区 | 亚洲国产第一区二区三区 |