国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL取消了Query Cache的原因

瀏覽:5日期:2023-10-10 14:35:38

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

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

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

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

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

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

MySQL取消了Query Cache的原因

如果你認(rèn)為會從查詢緩存中獲得好處,請按照實(shí)際情況進(jìn)行測試。

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

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

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

MySQL取消了Query Cache的原因

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

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

全文完。

以上就是MySQL取消了Query Cache的原因的詳細(xì)內(nèi)容,更多關(guān)于MySQL Query Cache的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 聂荣县| 淳安县| 互助| 北流市| 永仁县| 宿松县| 庄河市| 浮山县| 商洛市| 张家川| 齐齐哈尔市| 常宁市| 衡阳县| 昂仁县| 章丘市| 舟山市| 达日县| 资中县| 营口市| 江达县| 平山县| 奇台县| 淮北市| 漳州市| 永德县| 仙桃市| 吉林省| 凤台县| 平远县| 信丰县| 林口县| 华亭县| 台中县| 郯城县| 封开县| 综艺| 崇州市| 丽江市| 肃南| 精河县| 汨罗市|