国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL加速查詢速度的獨門武器:查詢緩存

2024-07-24 12:40:15
字體:
來源:轉載
供稿:網友

導讀

    與朋友或同事談到mysql查詢緩存功能的時候,個人喜歡把Query Cache比作荔枝,是非常營養的東西,但是一次性吃太多了,就容易導致上火而流鼻血,雖然不是特別恰當的比喻,但是有很多相似的地方,另外Query Cache有其特殊的業務場景,也不像其他數據庫產品,緩存查詢語句的執行計劃等信息,而是直接緩存查詢語句的記錄集和對應的SQL語句。本文就給大家介紹下查詢緩存的相關知識,希望可以引導大家正確地使用Query Cache這個獨門武器。

對mysql查詢緩存從五個角度進行詳細的分析:Query Cache的工作原理、如何配置、如何維護、如何判斷查詢緩存的性能、適合的業務場景分析。

 工作原理

查詢緩存的工作原理,基本上可以用二句話概括:

l  緩存SELECT操作或預處理查詢(注釋:5.1.17開始支持)的結果集和SQL語句;

l  新的SELECT語句或預處理查詢語句,先去查詢緩存,判斷是否存在可用的記錄集,判斷標準:與緩存的SQL語句,是否完全一樣,區分大小寫;

查詢緩存對什么樣的查詢語句,無法緩存其記錄集,大致有以下幾類:

l  查詢語句中加了SQL_NO_CACHE參數;

l  查詢語句中含有獲得值的函數,包涵自定義函數,如:CURDATE()、GET_LOCK()、RAND()、CONVERT_TZ等;

l  對系統數據庫的查詢:mysql、information_schema

l  查詢語句中使用SESSION級別變量或存儲過程中的局部變量;

l  查詢語句中使用了LOCK  IN SHARE MODE、FOR UPDATE的語句

l  查詢語句中類似SELECT …INTO 導出數據的語句;

l  事務隔離級別為:Serializable情況下,所有查詢語句都不能緩存;

l  對臨時表的查詢操作;

l  存在警告信息的查詢語句;

l  不涉及任何表或視圖的查詢語句;

l  某用戶只有列級別權限的查詢語句;

查詢緩存的優缺點:

l  不需要對SQL語句做任何解析和執行,當然語法解析必須通過在先,直接從Query  Cache中獲得查詢結果;

l  查詢緩存的判斷規則,不夠智能,也即提高了查詢緩存的使用門檻,降低其效率;

l  Query Cache的起用,會增加檢查和清理Query Cache中記錄集的開銷,而且存在SQL語句緩存的表,每一張表都只有一個對應的全局鎖;

 配置

        是否啟用mysql查詢緩存,可以通過2個參數:query_cache_type和query_cache_size,其中任何一個參數設置為0都意味著關閉查詢緩存功能,但是正確的設置推薦query_cache_type=0。

l  query_cache_type

值域為:0 -

主站蜘蛛池模板: 枝江市| 临江市| 乌审旗| 全州县| 安溪县| 莱州市| 临朐县| 高淳县| 钟山县| 白银市| 牡丹江市| 荆门市| 利辛县| 鄱阳县| 石台县| 柳林县| 宝坻区| 高雄县| 那坡县| 龙海市| 永德县| 睢宁县| 安化县| 滦南县| 禹州市| 齐齐哈尔市| 广西| 广宗县| 凌源市| 佳木斯市| 青冈县| 屏山县| 丹棱县| 沭阳县| 鲁甸县| 广丰县| 七台河市| 崇义县| 横山县| 迁西县| 广南县|