亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

mysql select緩存機制使用詳解

2024-07-25 19:08:32
字體:
來源:轉載
供稿:網友

mysql Query Cache 默認為打開。從某種程度可以提高查詢的效果,但是未必是最優的解決方案,如果有的大量的修改和查詢時,由于修改造成的cache失效,會給服務器造成很大的開銷,可以通過query_cache_type【0(OFF)1(ON)2(DEMAND)】來控制緩存的開關.

需要注意的是mysql query cache 是對大小寫敏感的,因為Query Cache 在內存中是以 HASH 結構來進行映射,HASH 算法基礎就是組成 SQL 語句的字符,所以 任何sql語句的改變重新cache,這也是項目開發中要建立sql語句書寫規范的原因吧

1. 何時cache

a) mysql query cache內容為 select 的結果集, cache 使用完整的 sql 字符串做 key, 并區分大小寫,空格等。即兩個sql必須完全一致才會導致cache命中。

b) prepared statement永遠不會cache到結果,即使參數完全一樣。據說在 5.1 之后會得到改善。

c) where條件中如包含了某些函數永遠不會被cache, 比如current_date, now等。

d) date 之類的函數如果返回是以小時或天級別的,最好先算出來再傳進去。
select * from foo where date1=current_date -- 不會被 cache
select * from foo where date1='2008-12-30' -- 被cache, 正確的做法

e) 太大的result set不會被cache (< query_cache_limit)

2. 何時invalidate

a) 一旦表數據進行任何一行的修改,基于該表相關cache立即全部失效。

b) 為什么不做聰明一點判斷修改的是否cache的內容?因為分析cache內容太復雜,服務器需要追求最大的性能。

3. 性能

a) cache 未必所有場合總是會改善性能

當有大量的查詢和大量的修改時,cache機制可能會造成性能下降。因為每次修改會導致系統去做cache失效操作,造成不小開銷。

另外系統cache的訪問由一個單一的全局鎖來控制,這時候大量>的查詢將被阻塞,直至鎖釋放。所以不要簡單認為設置cache必定會帶來性能提升。

b) 大result set不會被cache的開銷

太大的result set不會被cache, 但mysql預先不知道result set的長度,所以只能等到reset set在cache添加到臨界值 query_cache_limit 之后才會簡單的把這個cache 丟棄。這并不是一個高效的操作。如果mysql status中Qcache_not_cached太大的話, 則可對潛在的大結果集的sql顯式添加 SQL_NO_CACHE 的控制。
query_cache_min_res_unit = (query_cache_size – Qcache_free_memory) / Qcache_queries_in_cache

4. 內存池使用

mysql query cache 使用內存池技術,自己管理內存釋放和分配,而不是通過操作系統。內存池使用的基本單位是變長的block, 一個result set的cache通過鏈表把這些block串起來。因為存放result set的時候并不知道這個resultset最終有多大。block最短長度為 query_cache_min_res_unit, resultset 的最后一個block會執行trim操作。

Query Cache 在提高數據庫性能方面具有非常重要的作用。

其設定也非常簡單,僅需要在配置文件寫入兩行: query_cache_type 和 query_cache _size,而且 MySQL 的 query cache 非??欤《乙坏┟?,就直接發送給客戶端,節約大量的 CPU 時間。 

當然,非 SELECT 語句對緩沖是有影響的,它們可能使緩沖中的數據過期。一個 UPDATE 語句引起的部分表修改,將導致對該表所有的緩沖數據失效,這是 MySQL 為了平衡性能而沒有采取的措施。因為,如果每次 UPDATE 需要檢查修改的數據,然后撤出部分緩沖將導致代碼的復雜度增加。

query_cache_type 0 代表不使用緩沖, 1 代表使用緩沖,2 代表根據需要使用。

設置 1 代表緩沖永遠有效,如果不需要緩沖,就需要使用如下語句:

代碼如下

SELECT SQL_NO_CACHE * FROM my_table WHERE ...

如果設置為 2 ,需要開啟緩沖,可以用如下語句:

代碼如下

SELECT SQL_CACHE * FROM my_table WHERE ...

用 SHOW STATUS 可以查看緩沖的情況:

代碼如下

mysql> show status like 'Qca%';+-------------------------+----------+| Variable_name | Value |+-------------------------+----------+| Qcache_queries_in_cache | 8 || Qcache_inserts | 545875 || Qcache_hits | 83951 || Qcache_lowmem_prunes | 0 || Qcache_not_cached | 2343256 || Qcache_free_memory | 33508248 || Qcache_free_blocks | 1 || Qcache_total_blocks | 18 |+-------------------------+----------+8 rows in set (0.00 sec)

如果需要計算命中率,需要知道服務器執行了多少 SELECT 語句:

代碼如下

mysql> show status like 'Com_sel%';+---------------+---------+| Variable_name | Value |+---------------+---------+| Com_select | 2889628 |+---------------+---------+1 row in set (0.01 sec)

在本例中, MySQL 命中了 2,889,628 條查詢中的 83,951 條,而且 INSERT 語句只有 545,875 條。因此,它們兩者的和和280萬的總查詢相比有很大差距,因此,我們知道本例使用的緩沖類型是 2 。

而在類型是 1 的例子中, Qcache_hits 的數值會遠遠大于 Com_select

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产在线精品一区免费香蕉| 国产精品99久久久久久久久久久久| 2020欧美日韩在线视频| 亚洲精品一区二区三区不| 久久精品美女视频网站| 国模精品视频一区二区| 欧美专区在线播放| 久久免费国产精品1| 国产精品wwww| 亚洲国产成人精品一区二区| 久久精品亚洲精品| 韩国福利视频一区| 色悠悠国产精品| 欧美亚洲一区在线| 国产精品久久久久免费a∨| 一个人看的www久久| 久久这里只有精品视频首页| 亚洲最大av网| 日韩在线高清视频| 成人黄色av播放免费| 26uuu另类亚洲欧美日本老年| 亚洲色图综合久久| 久久久亚洲精品视频| 日本人成精品视频在线| 91精品国产乱码久久久久久蜜臀| 国产美女主播一区| 中文字幕免费精品一区| 国产日韩中文在线| 亚洲va久久久噜噜噜| 国产免费一区二区三区在线能观看| 久久中文久久字幕| 国产精品自产拍在线观| 美日韩精品免费观看视频| 国产精品v片在线观看不卡| 国产精品美女在线| 中文字幕精品一区二区精品| 精品一区二区三区电影| 国产日韩在线免费| 欧美日韩黄色大片| 日韩暖暖在线视频| 久久国产精品久久久久久久久久| 国产精品一久久香蕉国产线看观看| 国产精品一香蕉国产线看观看| 亚洲国产精品字幕| 国产激情视频一区| 97高清免费视频| 亚洲精品国产成人| 97成人精品区在线播放| 欧美激情综合色综合啪啪五月| 国产精品jvid在线观看蜜臀| 亚洲精品国精品久久99热一| 亚洲乱码国产乱码精品精天堂| 国产精品日韩欧美综合| 亚洲欧美日韩一区二区在线| 97涩涩爰在线观看亚洲| 亚洲天堂av在线免费观看| 国产精品白嫩初高中害羞小美女| 欧美人在线观看| 欧美日韩国产精品| 国产精品人成电影在线观看| 欧美日韩成人在线观看| 欧美多人爱爱视频网站| 九九综合九九综合| 色哟哟亚洲精品一区二区| 色噜噜久久综合伊人一本| 亚洲女人天堂网| 国产精品女人久久久久久| 欧美在线视频一二三| 亚洲bt天天射| 九九九热精品免费视频观看网站| 一区二区三区无码高清视频| 国产精品久久久久久久久粉嫩av| 欧美第一黄网免费网站| 国产精品人成电影| 欧洲亚洲女同hd| 欧美孕妇与黑人孕交| 主播福利视频一区| 久久视频在线直播| 91久久久久久久久| 亚洲一区二区三区成人在线视频精品| 中文字幕亚洲欧美一区二区三区| 欧美国产激情18| 青青青国产精品一区二区| 亚洲第一页中文字幕| 国产男女猛烈无遮挡91| 中文字幕免费精品一区高清| 亚洲奶大毛多的老太婆| 国产精品一区二区三区免费视频| 日韩在线观看电影| 亚洲女人被黑人巨大进入al| 久久精品亚洲国产| 亚洲国产三级网| 91在线高清免费观看| 伊人久久精品视频| 国产成人精品久久二区二区| 色综合久久88色综合天天看泰| 欧美专区日韩视频| 国产精品免费小视频| 欧美日韩日本国产| 色偷偷88888欧美精品久久久| 国产精品亚洲аv天堂网| 亚洲午夜久久久影院| 国产午夜精品视频免费不卡69堂| 欧美性xxxx极品hd欧美风情| 97香蕉久久超级碰碰高清版| 国产剧情日韩欧美| 亚洲精品999| 日韩av在线导航| 51精品国产黑色丝袜高跟鞋| 国产剧情久久久久久| 欧美在线性爱视频| 在线成人激情黄色| 亚洲午夜精品久久久久久久久久久久| 国产成+人+综合+亚洲欧美丁香花| 欧美在线视频网站| 97色在线观看免费视频| 亚洲欧美日韩另类| 欧美激情网友自拍| 欧美又大又粗又长| 欧美电影免费观看网站| 亚洲精品动漫100p| 在线观看中文字幕亚洲| 日韩成人在线播放| 精品高清美女精品国产区| 日韩av123| 国产欧美精品日韩精品| 亚洲aⅴ男人的天堂在线观看| 日韩精品亚洲视频| 国产一区二区三区在线看| 亚洲精品一区二区网址| 亚洲午夜色婷婷在线| 欧美成人精品一区二区三区| 亚洲欧美日韩中文在线| 中文字幕亚洲欧美| 国产精品久久久久久久久久99| 亚洲变态欧美另类捆绑| 国产精品揄拍500视频| 91网在线免费观看| 在线播放国产一区中文字幕剧情欧美| 孩xxxx性bbbb欧美| 91国产美女在线观看| 欧美精品在线免费观看| 欧美极品少妇xxxxⅹ免费视频| 日韩av在线影院| 亚洲自拍偷拍第一页| 日韩a**中文字幕| 亚洲日韩欧美视频| 国产成+人+综合+亚洲欧美丁香花| 欧美肥老妇视频| 黄色成人在线免费| 国产美女精品视频| 国产精品免费视频久久久| 亚洲高清一二三区| 亚洲天堂2020| 国产精品成人国产乱一区| 欧美激情视频在线免费观看 欧美视频免费一| 国产极品jizzhd欧美| 欧美电影免费观看电视剧大全| 久久久99免费视频| 中文字幕免费精品一区高清| 欧美日韩国内自拍| 91欧美日韩一区| 一本色道久久88亚洲综合88| 91在线播放国产|