濮阳杆衣贸易有限公司

主頁 > 知識庫 > MySQL取消了Query Cache的原因

MySQL取消了Query Cache的原因

熱門標(biāo)簽:申請外呼電話線路 信陽穩(wěn)定外呼系統(tǒng)運營商 南通自動外呼系統(tǒng)軟件 石家莊電商外呼系統(tǒng) 湖南人工外呼系統(tǒng)多少錢 廣東人工電話機器人 芒果電話機器人自動化 日照旅游地圖標(biāo)注 百度地圖圖標(biāo)標(biāo)注中心

MySQL之前有一個查詢緩存Query Cache,從8.0開始,不再使用這個查詢緩存,那么放棄它的原因是什么呢?在這一篇里將為您介紹。

MySQL查詢緩存是查詢結(jié)果緩存。它將以SEL開頭的查詢與哈希表進行比較,如果匹配,則返回上一次查詢的結(jié)果。進行匹配時,查詢必須逐字節(jié)匹配,例如 SELECT * FROM t1; 不等于select * from t1;,此外,一些不確定的查詢結(jié)果無法被緩存,任何對表的修改都會導(dǎo)致這些表的所有緩存無效。因此,適用于查詢緩存的最理想的方案是只讀,特別是需要檢查數(shù)百萬行后僅返回數(shù)行的復(fù)雜查詢。如果你的查詢符合這樣一個特點,開啟查詢緩存會提升你的查詢性能。

隨著技術(shù)的進步,經(jīng)過時間的考驗,MySQL的工程團隊發(fā)現(xiàn)啟用緩存的好處并不多。

首先,查詢緩存的效果取決于緩存的命中率,只有命中緩存的查詢效果才能有改善,因此無法預(yù)測其性能。

其次,查詢緩存的另一個大問題是它受到單個互斥鎖的保護。在具有多個內(nèi)核的服務(wù)器上,大量查詢會導(dǎo)致大量的互斥鎖爭用。

通過基準(zhǔn)測試發(fā)現(xiàn),大多數(shù)工作負載最好禁用查詢緩存(5.6的默認設(shè)置):query_cache_type = 0

如果你認為會從查詢緩存中獲得好處,請按照實際情況進行測試。

  • 數(shù)據(jù)寫的越多,好處越少
  • 緩沖池中容納的數(shù)據(jù)越多,好處越少
  • 查詢越復(fù)雜,掃描范圍越大,則越受益

MySQL8.0取消查詢緩存的另外一個原因是,研究表明,緩存越靠近客戶端,獲得的好處越大。關(guān)于這份研究請參考https://proxysql.com/blog/scaling-with-proxysql-query-cache/

下圖源自上面的網(wǎng)址:

除此之外,MySQL8.0新增加了對性能干預(yù)的工具,例如,現(xiàn)在可以利用查詢重寫插件,在不更改應(yīng)用程序的同時,插入優(yōu)化器提示語句。另外,還有像ProxySQL這樣的第三方工具,它們可以充當(dāng)中間緩存。

綜合以上原因,MySQL8.0不再提供對查詢緩存的支持,如果用戶從5.7版本升級至8.0,考慮使用查詢重寫或其他緩存。

全文完。

以上就是MySQL取消了Query Cache的原因的詳細內(nèi)容,更多關(guān)于MySQL Query Cache的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • MySQL的Query Cache圖文詳解
  • mysql優(yōu)化之query_cache_limit參數(shù)說明
  • MySQL高速緩存啟動方法及參數(shù)詳解(query_cache_size)
  • 對于mysql的query_cache認識的誤區(qū)
  • MySQL的Query Cache原理分析
  • MySQL query_cache_type 參數(shù)與使用詳解

標(biāo)簽:牡丹江 天津 呼和浩特 惠州 沈陽 阿里 公主嶺 合肥

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL取消了Query Cache的原因》,本文關(guān)鍵詞  MySQL,取消,了,Query,Cache,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL取消了Query Cache的原因》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL取消了Query Cache的原因的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    慈利县| 鹤庆县| 隆安县| 东乡族自治县| 商丘市| 吴忠市| 蕉岭县| 五河县| 高阳县| 陆川县| 调兵山市| 玛曲县| 专栏| 西乌珠穆沁旗| 定日县| 沅陵县| 通道| 盖州市| 池州市| 龙口市| 博爱县| 华容县| 玛曲县| 右玉县| 溆浦县| 澄江县| 长沙县| 石渠县| 柳州市| 新余市| 锡林郭勒盟| 胶州市| 蛟河市| 安康市| 县级市| 仙居县| 西宁市| 绥化市| 红安县| 玉林市| 林芝县|