亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

High Performance MySQL中有關(guān)mysql query cach

系統(tǒng) 2530 0
High Performance MySQL中有關(guān)mysql query cache的說(shuō)明
2008-12-14 01:20
終于看了一直景仰的 High Performance MySQL Second Edition 一書,看了一些章節(jié)并把其中一些觀點(diǎn)記錄了下來(lái),本文是整理 chapter 5. Advance MySQL features 部分觀點(diǎn)所得。

1. 何時(shí)cache
a) mysql query cache內(nèi)容為 select 的結(jié)果集, cache 使用完整的 sql 字符串做 key, 并區(qū)分大小寫,空格等。即兩個(gè)sql必須完全一致才會(huì)導(dǎo)致cache命中。
b) prepared statement永遠(yuǎn)不會(huì)cache到結(jié)果,即使參數(shù)完全一樣。據(jù)說(shuō)在 5.1 之后會(huì)得到改善。
c) where條件中如包含了某些函數(shù)永遠(yuǎn)不會(huì)被cache, 比如current_date, now等。
d) date 之類的函數(shù)如果返回是以小時(shí)或天級(jí)別的,最好先算出來(lái)再傳進(jìn)去。
select * from foo where date1=current_date -- 不會(huì)被 cache
select * from foo where date1='2008-12-30' -- 被cache, 正確的做法
e) 太大的result set不會(huì)被cache (< query_cache_limit)

2. 何時(shí)invalidate
a) 一旦表數(shù)據(jù)進(jìn)行任何一行的修改,基于該表相關(guān)cache立即全部失效。
b) 為什么不做聰明一點(diǎn)判斷修改的是否cache的內(nèi)容?因?yàn)榉治鯿ache內(nèi)容太復(fù)雜,服務(wù)器需要追求最大的性能。

3. 性能
a) cache 未必所有場(chǎng)合總是會(huì)改善性能
當(dāng)有大量的查詢和大量的修改時(shí),cache機(jī)制可能會(huì)造成性能下降。因?yàn)槊看涡薷臅?huì)導(dǎo)致系統(tǒng)去做cache失效操作,造成不小開銷。
另外系統(tǒng)cache的訪問(wèn)由一個(gè)單一的全局鎖來(lái)控制,這時(shí)候大量>的查詢將被阻塞,直至鎖釋放。所以不要簡(jiǎn)單認(rèn)為設(shè)置cache必定會(huì)帶來(lái)性能提升。
b) 大result set不會(huì)被cache的開銷
太大的result set不會(huì)被cache, 但mysql預(yù)先不知道result set的長(zhǎng)度,所以只能等到reset set在cache添加到臨界值 query_cache_limit 之后才會(huì)簡(jiǎn)單的把這個(gè)cache 丟棄。這并不是一個(gè)高效的操作。如果mysql status中Qcache_not_cached太大的話, 則可對(duì)潛在的大結(jié)果集的sql顯式添加 SQL_NO_CACHE 的控制。
query_cache_min_res_unit = (query_cache_size – Qcache_free_memory) / Qcache_queries_in_cache

4. 內(nèi)存池 使用
mysql query cache 使用內(nèi)存池技術(shù),自己管理內(nèi)存釋放和分配,而不是通過(guò)操作系統(tǒng)。內(nèi)存池使用的基本單位是變長(zhǎng)的block, 一個(gè)result set的cache通過(guò)鏈表把這些block串起來(lái)。因?yàn)榇娣舝esult set的時(shí)候并不知道這個(gè)resultset最終有多大。block最短長(zhǎng)度為 query_cache_min_res_unit, resultset 的最后一個(gè)block會(huì)執(zhí)行trim操作。
(引用:High Performance MySQL 原書Figure 5-1 插圖)

定長(zhǎng):空間浪費(fèi)
變長(zhǎng):需清理碎片
block 小: 鏈表超長(zhǎng),訪問(wèn)大塊數(shù)據(jù)效率低。

另外發(fā)現(xiàn) surfchen 的 MySQL的Query Cache 對(duì)這方面的內(nèi)容描述也不錯(cuò),可以和本文互為補(bǔ)充。

High Performance MySQL中有關(guān)mysql query cache的說(shuō)明


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 尤物在线视频 | 曰本女人一级毛片看一级毛 | 亚洲精品在线免费看 | 九九99re在线视频精品免费 | 伊人久久波多野结衣中文字幕 | 亚洲一区二区三区欧美 | 久久成人在线观看 | 曰鲁夜鲁鲁狠狠综合 | 国内外成人免费视频 | 成人在线精品 | 性欧美video视频另类 | 精品国产91久久久久久久 | 手机看片国产永久1204 | 一级片在线免费观看 | 久久久999国产精品 久久久999久久久精品 | 久久久久久久99久久久毒国产 | 亚洲最大激情中文字幕 | 四虎影视最新 | 亚洲综合成人在线 | 欧美激情(一区二区三区) | 天海翼精品久久中文字幕 | 色综合天天综久久久噜噜噜久久〔 | 色色色资源站 | m3u8久久国产精品影院 | 国产护士资源总站 | 狠狠狠色 | 毛片看看 | 婷婷精品视频 | 国产凹凸在线一区二区色老头 | 亚洲欧洲日韩在线 | 欧美一级毛片免费播放器 | 亚洲 欧美精品 | 亚洲精品久久中文字幕 | 91亚洲国产成人久久精品网站 | 国产亚洲精品第一区在线观看 | 俄欧美做爰xxxⅹ在线视频 | 精品视频在线一区 | 成人国产在线24小时播放视频 | 91视频国产一区 | 久久欧美精品欧美久久欧美 | 亚洲国产爱 |