1. 程式人生 > >MySQL開發人員對快取下了一道處決令,槍聲已響!

MySQL開發人員對快取下了一道處決令,槍聲已響!

MySQL

多核機器變得很忙碌時,可擴充套件性就會很糟糕,於是MySQL資料庫的開發人員決定要另謀出路。

MySQL Server的一群開發人員已認定,MySQL的查詢快取(Query Cache)這項功能現已成了瓶頸,於是果斷終結了該功能。

如果你在網上搜索一下“tuning MySQL query cache”(優化MySQL查詢快取),看到那麼多的結果以及有人提供的五花八門的建議,這則新聞也就並不完全令人驚訝了。

正如MySQL Server的產品經理摩根·托克(Morgan Tocker)在這裡(http://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/)撰寫的那樣,問題在於可擴充套件性。

快取的操作看起來簡單得很:SELECT(選擇)命令儲存在一個雜湊表(又叫散列表,hash table)中;如果入站請求與雜湊匹配,伺服器就能返回上一次查詢執行的結果(並且有保護機制,那樣伺服器不會返回過時陳舊的結果。)

托克寫道,問題在於,“眾所周知,面對多核機器上的高吞吐量工作負載,快取無法很好地擴充套件。”

他繼續寫道,就算這個問題能夠得到解決,解決辦法也無法讓查詢快取的效能變得更易於預測(言外之意就是變得更穩定);對於面向使用者的系統來說,效能的穩定性常常比峰值吞吐量來得更重要。

MySQL Server的一群開發人員已決定“致力於其他更普遍適用於所有工作負載的改進方法”,而不是堅持修復快取問題。

果真需要快取機制的開發人員可以使用ProxySQL,升級到MySQL 8.0的其他使用者“將被鼓勵使用伺服器端Query Rewrite(查詢重寫)。”

原文來自微信公眾號:雲頭條