欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

MySQL進階實戰(zhàn)11,查詢緩存-創(chuàng)新互聯(lián)

目錄
    • 一、查詢緩存是什么?
    • 二、MySQL如何判斷緩存命中
    • 三、使用查詢緩存需謹慎
    • 四、如何分析和配置查詢緩存
    • 五、InnoDB和查詢緩存
      • MySQL進階實戰(zhàn)系列文章
      • 哪吒精品系列文章

站在用戶的角度思考問題,與客戶深入溝通,找到嘉祥網(wǎng)站設計與嘉祥網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設計、外貿營銷網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋嘉祥地區(qū)。一、查詢緩存是什么?

MySQL查詢緩存保存查詢返回的完整結果,當查詢命中該緩存,MySQL會立刻返回結果,跳過解析、優(yōu)化和執(zhí)行過程。

在這里插入圖片描述
查詢緩存系統(tǒng)會跟蹤查詢中涉及的每個表,如果這些表發(fā)生變化,那么和這個表相關的所有的緩存數(shù)據(jù)都將失效,這種機制效率看起來比較低,因為數(shù)據(jù)表變化時可能對查詢結果并沒有影響,但是這種簡單實現(xiàn)代價很小,而這點對于一個非常繁忙的系統(tǒng)來說非常重要。

二、MySQL如何判斷緩存命中

判斷是否命中時,MySQL不會解析,而是直接使用SQL語句和客戶端發(fā)送過來的其它原始信息。任何字符上的不同,例如空格、注釋,丟回導致緩存的不命中。通常使用統(tǒng)一的編碼規(guī)則是一個好的習慣,會讓你的系統(tǒng)運行的更快。

當查詢語句中有一些不確定的數(shù)據(jù)時,不會被緩存,比如函數(shù)now()。實際上,如果緩存中包含任何用戶自定義函數(shù)、存儲函數(shù)、用戶變量、臨時表、MySQL系統(tǒng)表、或者任何包含列級別權限的表,都不會被緩存。

三、使用查詢緩存需謹慎

打開查詢緩存對讀和寫操作都會帶來額外的消耗:

  1. 讀查詢在執(zhí)行之前要先檢查是否命中緩存;
  2. 如果讀查詢可以被緩存,那么當完成執(zhí)行后,MySQL如果發(fā)現(xiàn)緩存中沒有這個查詢,會將其結果存入查詢緩存,這會帶來額外的系統(tǒng)消耗;
  3. 對寫操作也有影響,因為當向某個表寫入數(shù)據(jù)的時候,MySQL必須將對應表的所有緩存設置失效。如果查詢緩存非常大或者碎片很多,這個操作就可能會帶來很大的系統(tǒng)消耗;

雖然如此,查詢緩存仍然會給系統(tǒng)帶來性能的提升。但是,上述的額外消耗也可能不斷增加,再加上對查詢緩存操作是一個加鎖排它操作,這個消耗也不小。

對InnoDB用戶來說,事務的一些特性會限制查詢緩存的使用。當一個語句在事務中修改了某個表,在事務提交前,MySQL都會將這個表對應的查詢緩存設置失效,因此,長時間運行的事務,會大大降低查詢緩存的命中率。

四、如何分析和配置查詢緩存

在這里插入圖片描述

五、InnoDB和查詢緩存

因為InnoDB有自己的MVCC機制,所以相比其它存儲引擎,InnoDB和查詢緩存的交互要更加復雜。

MVCC是多版本并發(fā)控制,是為了在讀取數(shù)據(jù)時不加鎖來提高讀取效率和并發(fā)性的一種手段。MVCC解決的是讀寫時的線程安全問題,線程不用去爭搶讀寫鎖。

MVCC所提到的讀是快照讀,也就是普通的select語句,快照讀在讀寫時不用加鎖,不過可能會讀到歷史數(shù)據(jù)。

另一種讀的方式是當前讀,是一種悲觀鎖的操作,它會對當前讀取的數(shù)據(jù)進行加鎖,所以讀到的數(shù)據(jù)都是最新的,主要包括以下操作:

  1. select lock in share mode,共享鎖
  2. select for update,排它鎖
  3. insert,排它鎖
  4. update,排它鎖
  5. delete,排它鎖

InnoDB會控制在一個事務中是否可以使用查詢緩存,InnoDB會同時控制對查詢緩存的讀寫操作。事務是否可以訪問查詢緩存取決于當前事務的ID,以及對應的數(shù)據(jù)表上是否有鎖。每一個InnoDB表的內存數(shù)據(jù)字典都保存了一個事務ID號,如果當前事務ID小于該事務ID,則無法訪問查詢緩存。

如果表上有任何的鎖,那么對這個表的任何查詢語句都是無法被緩存的。例如,某個事務執(zhí)行了select for update語句,那么在這個鎖釋放之前,任何其它的事務都無法從查詢緩存中讀取與這個表相關的緩存結果。

當事務提交時,InnoDB持有鎖,并使用當前的一個系統(tǒng)事務ID更新當前表的計數(shù)器。InnoDB將每個表的計數(shù)器設置成某個事務ID,而這個事務ID就代表了當前存在的且修改了該表的大的事務ID。

MySQL進階實戰(zhàn)系列文章

MySQL進階實戰(zhàn)1,數(shù)據(jù)類型與三范式

MySQL進階實戰(zhàn)2,那些年學過的事務

MySQL進階實戰(zhàn)3,mysql索引詳解,上篇

MySQL進階實戰(zhàn)4,那些年學過的索引,下篇

MySQL進階實戰(zhàn)5,為什么查詢速度會慢

MySQL進階實戰(zhàn)6,緩存表、視圖、計數(shù)器表

MySQL進階實戰(zhàn)7,查詢的執(zhí)行過程

MySQL進階實戰(zhàn)8,分區(qū)表詳解

MySQL進階實戰(zhàn)9,InnoDB和MyISAM的數(shù)據(jù)分布對比

MySQL進階實戰(zhàn)10,MySQL全文索引

SQL性能優(yōu)化的21個小技巧

mysql索引詳解

MySql基礎知識總結(SQL優(yōu)化篇)

哪吒精品系列文章

Java學習路線總結,搬磚工逆襲Java架構師

10萬字208道Java經(jīng)典面試題總結(附答案)

Java基礎教程系列
在這里插入圖片描述

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章標題:MySQL進階實戰(zhàn)11,查詢緩存-創(chuàng)新互聯(lián)
本文鏈接:http://aaarwkj.com/article30/dppiso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號動態(tài)網(wǎng)站、關鍵詞優(yōu)化商城網(wǎng)站、域名注冊服務器托管

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設
国产熟女碰碰人人a久久| 久久亚洲中文字幕精品熟女| 欧美日韩免费一区二三区| 国产高清在线不卡一区| 国产av一区二区三区野战| 午夜免费福利视频一区| 小黄片视频免费在线播放| 国产精品一区二区污网站| 亚洲精品国产av一区| 国产高清亚洲一区亚洲二区| 日韩中文字幕视频一区| 亚洲图文一区二区三区四区| 人妻系列少妇人妻偷人| 日本黄色三级三级三级| 国产内射一级一片内射高清视频1| 欧美午夜国产在线观看| 国产亚洲精品一区二区三在线观看| 国产精品一区二区精品| 91九色国产原创在线观看| 亚洲美女香蕉视频在线| 午夜一区二区三区精品| av在线男人社区日韩| 在线观看中文字幕不卡二区| 免费国产成人在线视频| 亚洲天堂毛片在线观看| 美腿丝袜亚洲综合一区| 四虎在线观看免费资源| 国产欧美日韩一区二区三区不卡| 国产三级传媒在线观看| 人体艺术日韩色噜噜| 免费爱爱视频在线观看| 18岁以下禁看视频网站| 天天操操操操操操夜夜爽| 一区二区三区乱码国产| 高质量的性生活在线观看| 日韩欧美亚洲一级黄片| 日本久久精品视频一区| 亚洲高清中文字幕一区二三区| 男人的天堂久久精品激情| 91欧美一区二区在线视频| 亚洲av优选在线观看精品 |