国产探花免费观看_亚洲丰满少妇自慰呻吟_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 -

主站蜘蛛池模板: 江华| 滨州市| 沙河市| 德保县| 墨玉县| 永宁县| 鹤庆县| 皋兰县| 惠安县| 清丰县| 招远市| 堆龙德庆县| 汉源县| 灵台县| 隆化县| 宁晋县| 仪征市| 上林县| 浏阳市| 宁远县| 道孚县| 凤山县| 滁州市| 隆林| 和田县| 红安县| 怀安县| 铅山县| 文化| 金寨县| 达孜县| 泽库县| 勃利县| 临沂市| 浦北县| 呈贡县| 获嘉县| 容城县| 胶南市| 贞丰县| 达拉特旗|