MySQL的查詢快取功能何時該開啟
MySQL的查詢快取功能何時該開啟
背景描述
查詢快取(Query Cache,簡稱QC),儲存SELECT語句及其產生的資料結果。
適用場景
用於頻繁提交同一個語句,並且該表資料變化不是很頻繁的場景,例如一些靜態頁面,或者頁面中的某塊不經常發生變化的資訊。
由於查詢快取需要快取最新資料結果,因此表資料發生任何變化(insert、update、delete或其他可能產生資料變化的操作),都會導致查詢快取被重新整理。因而,對於一個更新頻率非常低而只讀查詢頻率非常高的場景下,開啟查詢快取還是比較有優勢的。
不適用場景
查詢快取嚴格要求2次SQL請求要完全一樣,包括SQL語句,連線的資料庫、協議版本、字符集等因素都會影響。下面為查詢快取不適用的幾個場景:
- 子查詢;
- 過程、函式、觸發器、event中呼叫的SQL,或者引用到這些結果的;
- 查詢中涉及一些特殊函式時,例如:BENCHMARK()、CURDATE()、CURRENT_TIME()、CURRENT_TIMESTAMP()、NOW()、SLEEP()、CONNECTION_ID()、CURRENT_DATE()、CURRENT_USER()、PASSWORD()、RAND()、UUID()、ENCRYPT()、LAST_INSERT_ID()等等;
- 查詢涉及到mysql,information_schema或performance_schema。
- 類似SELECT…LOCK IN SHARE MODE、SELECT…FOR UPDATE、SELECT..INTO OUTFILE/DUMPFILE、SELECT * FROM ... WHERE autoincrement_col IS NULL的查詢;
- SELECT執行計劃用到臨時表;
- 未引用任何表的查詢,例如SELECT 1+2;
- 查詢產生了告警(warnings);
- SELECT語句中存在SQL_NO_CACHE關鍵字;
- 涉及到分割槽表。
可見,使用查詢的快取的限制非常多。當使用場景中以只讀為主,很少有更新的情況時,再考慮 開啟查詢快取。
開啟查詢快取
設定選項query_cache_type = 1 ,同時設定query_cache_size = 67108864;
注:query_cache_size的值設定在100MB以內即可。在MySQL裡查詢快取是由一個全域性鎖在控制,每次更新查詢快取的記憶體塊都需要進行鎖定。
關閉查詢快取
設定選項query_cache_type = 0,同時設定query_cache_size = 0。
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub、部落格園、CSDN和個人微 信公眾號( DB寶)上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文CSDN地址: https://blog.csdn.net/lihuarongaini ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826 ........................................................................................................................ ● QQ群號: 230161599 、618766405 ● 微 信群:可加我微 信,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ),註明新增緣由 ● 於 2020-05-01 06:00 ~ 2020-05-30 24:00 在西安完成 ● 最新修改時間:2020-05-01 06:00 ~ 2020-05-30 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店: https://weidian.com/s/793741433?wfr=c&ifr=shopdetail ● 小麥苗出版的資料庫類叢書: http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班: http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁: https://lhr.ke.qq.com/ ........................................................................................................................ 使用 微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號( DB寶)及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2692161/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql查詢快取簡單使用MySql快取
- 方法快取與查詢快取
- redis 快取 singlefly 查詢Redis快取
- MySQL查詢擷取分析MySql
- mysql5.7.10開啟慢查詢詳解MySql
- MySQL查詢時間段MySql
- 執行緒的快取何時重新整理?執行緒快取
- day03-商家查詢快取02快取
- 如何在MySQL中開啟慢查詢日誌?MySql
- MySQL查詢取別名報錯MySql
- day02-2-商鋪查詢快取快取
- 微服務複雜查詢之快取策略微服務快取
- MySQL 查詢結果取交集的實現方法MySql
- Doris2.0的Analyze功能,能讓查詢變快不?
- 電商小白該選擇怎樣的快遞查詢工具?
- MySQL字串轉時間戳查詢MySql字串時間戳
- 在 Linux/Unix/Mac 下清除 DNS 查詢快取LinuxMacDNS快取
- Laravel Eloquent 關聯模型查詢快取資料Laravel模型快取
- MySQL 中 MyISAM 中的查詢為什麼比 InnoDB 快?MySql
- MySQL中MyISAM為什麼比InnoDB查詢快MySql
- 查詢時若時間為空,開始時間取今天的零點,結束時間取當前時間
- Mysql 獲取表設計查詢語句MySql
- localstorage實現帶過期時間的快取功能快取
- mysql查詢最近時間的一組資料MySql
- Day64 Mybatis的多表查詢、ResultMap、註解以及快取MyBatis快取
- MySQL查詢MySql
- mysql中取系統當前時間,當前日期方便查詢判定的程式碼MySql
- Mata解決了快取何時失效的世紀難題? - Lu快取
- mysql查詢語句陣列下標擷取MySql陣列
- ansible 開啟facts_cache快取快取
- 你應該知道的前端——快取前端快取
- 介紹使用WordPress時10個常用的MySQL查詢MySql
- 錄取查詢
- Laravel Passport OAuth 資料庫查詢改快取優化LaravelPassportOAuth資料庫快取優化
- 直播賣貨系統,使用資料庫查詢快取資料庫快取
- MySQL的分頁查詢MySql
- MySQL 的查詢優化MySql優化
- 【Linux】Linux開啟snmp及查詢Linux