《MySQL開發(fā)人員對(duì)緩存下了一道處決令,槍聲已響!》要點(diǎn):
本文介紹了MySQL開發(fā)人員對(duì)緩存下了一道處決令,槍聲已響!,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
多核機(jī)器變得很忙碌時(shí),可擴(kuò)展性就會(huì)很糟糕,于是MySQL數(shù)據(jù)庫的開發(fā)人員決定要另謀出路.
MySQL Server的一群開發(fā)人員已認(rèn)定,MySQL的查詢緩存(Query Cache)這項(xiàng)功能現(xiàn)已成了瓶頸,于是果斷終結(jié)了該功能.
如果你在網(wǎng)上搜索一下“tuning MySQL query cache”(優(yōu)化MySQL查詢緩存),看到那么多的結(jié)果以及有人提供的五花八門的建議,這則新聞也就并不完全令人驚訝了.
正如MySQL Server的產(chǎn)品經(jīng)理摩根·托克(Morgan Tocker)在這里(http://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/)撰寫的那樣,問題在于可擴(kuò)展性.
緩存的操作看起來簡(jiǎn)單得很:SELECT(選擇)命令存儲(chǔ)在一個(gè)哈希表(又叫散列表,hash table)中;如果入站請(qǐng)求與哈希匹配,服務(wù)器就能返回上一次查詢執(zhí)行的結(jié)果(并且有保護(hù)機(jī)制,那樣服務(wù)器不會(huì)返回過時(shí)陳舊的結(jié)果.)
托克寫道,問題在于,“眾所周知,面對(duì)多核機(jī)器上的高吞吐量工作負(fù)載,緩存無法很好地?cái)U(kuò)展.”
他繼續(xù)寫道,就算這個(gè)問題能夠得到解決,解決辦法也無法讓查詢緩存的性能變得更易于預(yù)測(cè)(言外之意就是變得更穩(wěn)定);對(duì)于面向用戶的系統(tǒng)來說,性能的穩(wěn)定性常常比峰值吞吐量來得更重要.
MySQL Server的一群開發(fā)人員已決定“致力于其他更普遍適用于所有工作負(fù)載的改進(jìn)方法”,而不是堅(jiān)持修復(fù)緩存問題.
果真需要緩存機(jī)制的開發(fā)人員可以使用ProxySQL,升級(jí)到MySQL 8.0的其他用戶“將被鼓勵(lì)使用服務(wù)器端Query Rewrite(查詢重寫).”
原文來自微信公眾號(hào):云頭條
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/3753.html