首頁 > 技術 > 正文

是時候了!MySQL 5.7 的下一站,不如試試 TiDB?

2023-06-29 11:48:16來源:中關村在線  

在 2023 年 10 月 21 日,MySQL 5.7 將達到其生命周期的終點(EOL,End of Life)。這意味著 Oracle 將不再為 MySQL 5.7 提供官方更新、錯誤修復或安全補丁。

自發(fā)布以來,MySQL 5.7 成為了許多應用開發(fā)者的首選的數(shù)據(jù)庫,但日新月異的數(shù)據(jù)應用場景和技術也對數(shù)據(jù)庫技術棧提出了新的需求。隨著 MySQL 5.7 EOL 到來,升級到一個更高版本、且有官方支持的 MySQL 似乎是最直接的方案,但是否有其他選擇呢?我們是否可以找到一個既能滿足當下不斷發(fā)展的數(shù)據(jù)處理需求,又能克服當前 MySQL 技術限制的完美替代方案?

本文將介紹一些可能的替代方案的優(yōu)缺點,重點探討分布式數(shù)據(jù)庫(如 TiDB)的架構優(yōu)勢。


【資料圖】

1、MySQL 的發(fā)展及面臨的挑戰(zhàn)

當下,數(shù)據(jù)價值越來越受到企業(yè)的重視,“數(shù)據(jù)驅動”也成為了一個重要的課題,事務性數(shù)據(jù)處理方式在過去十年中發(fā)生了巨大變化,實時、海量的事務處理日益成為主流,同時對從這些數(shù)據(jù)中獲得即時的分析和洞察的需求也依然存在。然而,MySQL 在應對這些不斷演進的需求時存在一些局限性:

● 擴展性 :面向寫入密集型應用程序,MySQL 的性能變得不穩(wěn)定。當數(shù)據(jù)規(guī)模超過單個節(jié)點的容量時,性能會受到影響。

● 高可用性 :雖然 MySQL 提供了復制和集群等功能以實現(xiàn)高可用性,但要有效地設置和管理這些功能需要仔細規(guī)劃、配置和持續(xù)監(jiān)控。此外,傳統(tǒng)的 MySQL 復制可能出現(xiàn)延遲,進而導致數(shù)據(jù)不一致。

● 實時分析 :隨著企業(yè)對事務性數(shù)據(jù)的實時洞察的需求增加,在 MySQL 架構中將聯(lián)機事務處理(OLTP)和在線分析處理(OLAP)系統(tǒng)分離的架構會產生性能上的瓶頸。分析查詢可能會影響事務處理的性能。而使用單獨的分析數(shù)據(jù)庫處理這些查詢則增加了技術棧復雜性。

● 應對現(xiàn)代架構 :現(xiàn)代架構向云原生和微服務的轉變對 MySQL 這樣的單機系統(tǒng)提出了挑戰(zhàn)。

當企業(yè)的基礎設施無法滿足需求,數(shù)據(jù)規(guī)模從 1TB 增長到 100TB+,同時仍期望保持相同的性能時,這些限制帶來的不便就愈發(fā)明顯。

2、探索替代方案:MySQL 5.7 EOL 后,何去何從?

隨著 MySQL 5.7 EOL 即將到來,現(xiàn)在是重新評估選擇并為未來的數(shù)據(jù)處理能力做好準備的時候了。

Option 1

升級到官方支持的 MySQL 版本

這涉及從 MySQL 5.7 遷移到較新版本,如 MySQL 8.0,由 Oracle 提供維護和支持。

● 優(yōu)點 :這個選項確保了對現(xiàn)有 MySQL 架構的持續(xù)支持,能夠持續(xù)獲取新功能和性能改進。通常,這是最簡單的選擇,因為它對現(xiàn)有基礎設施和應用代碼的改動較少。

● 缺點 : 升級到較新版本的 MySQL 并不能解決 MySQL 架構導致的擴展性、高可用性和處理現(xiàn)代云原生架構相關的固有挑戰(zhàn)。同時,它還依賴于 Oracle 接下來的戰(zhàn)略方向,比如對 MySQL 產品的支持力度。

Option 2

采用第三方 MySQL 商業(yè)版本

像 MariaDB 和 Percona Server 這樣的 MySQL 分支版本是由第三方公司獨立開發(fā),為 MySQL 用戶提供了替代路徑。

● 優(yōu)點 : 這些分支版本通常能夠比 MySQL 本身更快地引入功能和性能改進。轉向分支版本可以依舊獲取持續(xù)的支持、與 MySQL 兼容的特性的熟悉性以及潛在的增強功能。

● 缺點 : 與 MySQL 一樣,這些分支版本在處理高并發(fā)的寫入密集型工作負載,或在分布式架構中部署時仍面臨挑戰(zhàn)。此外,支持的力度可能有所不同,一些企業(yè)可能不愿意對由社區(qū)驅動的項目提供更多的支持。

Option 3

遷移到分布式數(shù)據(jù)庫

如果現(xiàn)有的應用程序需要超出單個 MySQL 實例所能提供的可擴展性和高可用性,那么分布式數(shù)據(jù)庫(如 TiDB)可能是一個合適的選擇。

● 優(yōu)點 : 分布式數(shù)據(jù)庫將傳統(tǒng)關系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的優(yōu)點(ACID 特性、對 SQL 的支持)與 NoSQL 系統(tǒng)的優(yōu)點(水平可擴展性、高可用性)結合在一起。特別是 TiDB,完全兼容 MySQL 5.7,使得遷移變得更加容易。

● 缺點 : 遷移到分布式數(shù)據(jù)庫的過程可能需要進行全面評估,而不僅僅是簡單地升級 MySQL 或切換到分支版本。雖然 TiDB 兼容 MySQL,但可能不支持某些 MySQL 特定的功能,并且可能需要對現(xiàn)有的應用程序代碼進行一定范圍的調整。

3、TiDB ——兼容 MySQL 的分布式數(shù)據(jù)庫

想象一下,如果既能夠像操作 MySQL 一樣熟悉,同時又獲得分布式數(shù)據(jù)庫系統(tǒng)的可擴展性和可用性,那該多好?這恰是 TiDB 所擅長的。

TiDB ( https://www.pingcap.com/tidb/ ) 是由 PingCAP 開發(fā)的領先的開源分布式數(shù)據(jù)庫。它無縫地結合了關系型數(shù)據(jù)庫和 NoSQL 數(shù)據(jù)庫的優(yōu)勢,將傳統(tǒng)關系型數(shù)據(jù)庫管理系統(tǒng)的 ACID 特性、 SQL 兼容性與 NoSQL 系統(tǒng)的水平可擴展性相結合。

圖 1:TiDB的架構

以下是 TiDB 提供的主要功能的詳細介紹:

● 水平擴展性 :TiDB 的分布式架構允許數(shù)據(jù)自動分片到多個節(jié)點上。隨著工作負載的增長,您可以輕松地向集群添加更多節(jié)點來處理不斷增加的需求,而不會出現(xiàn)顯著的性能下降。

● 高可用性 :TiDB 通過在多個節(jié)點上復制數(shù)據(jù)來保持數(shù)據(jù)的冗余,并實現(xiàn)了自動故障切換。即使集群中的一個或多個節(jié)點故障,也能確保您的數(shù)據(jù)保持可訪問狀態(tài)。

● 強一致性 :在許多分布式數(shù)據(jù)庫中,一致性和可用性之間存在權衡。但是 TiDB 不是這樣。它使用一種稱為 Percolator 的分布式事務協(xié)議,保證了快照隔離一致性,確保集群中的所有節(jié)點對數(shù)據(jù)具有一致的視圖。

● MySQL 兼容性 :TiDB 支持 MySQL 協(xié)議,并且與 MySQL 語法具有廣泛的兼容性。這意味著許多現(xiàn)有的應用程序、框架和針對 MySQL 設計的工具可以與 TiDB 一起使用。

● 實時分析 :TiDB 利用 混合事務/分析處理(HTAP) 的能力,實現(xiàn)實時運營分析。TiKV、TiFlash 可按需部署在不同的節(jié)點上,解決 HTAP 資源隔離的問題。TiDB 提供了一個統(tǒng)一的平臺,用于即時高效地分析運營數(shù)據(jù)。

● 云原生架構 :TiDB 設計時考慮了云原生的原則,因此非常適合在云環(huán)境中部署。它支持 Docker 和 Kubernetes 等容器化技術,并集成了阿里云、AWS、GCP 等云平臺。

總結

數(shù)據(jù)庫選型是一項關鍵決策,它對組織的增長和成功有著重大影響。隨著 MySQL 5.7 EOL 到來,現(xiàn)在是 MySQL 用戶進行評估、計劃并為未來做好準備的時候了。如果您面臨可擴展性、高可用性、實時分析或適應云原生架構等挑戰(zhàn),從 MySQL 遷移到分布式數(shù)據(jù)庫(如 TiDB)可能是一個理想的選擇。

然而,同樣重要的是,要認識到 MySQL 和 TiDB 在 MySQL 生態(tài)系統(tǒng)中可以共存并相互協(xié)作的可能性。許多客戶已經(jīng)意識到同時使用 MySQL 和 TiDB 的好處,特別是對于大規(guī)模應用程序而言。通過在使用 MySQL 的同時,企業(yè)利用 TiDB 可以實現(xiàn)更高的可擴展性、高可用性和混合工作負載處理能力。這種協(xié)同作用可以實現(xiàn)無縫的數(shù)據(jù)管理,并滿足現(xiàn)代應用程序不斷發(fā)展的需求。

標簽:

相關閱讀

精彩推薦

相關詞

推薦閱讀