天天看點

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

作者:趣聊時尚

導讀

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

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

本文将介紹一些可能的替代方案的優缺點,重點探讨分布式資料庫(如 TiDB)的架構優勢。

1、MySQL 的發展及面臨的挑戰

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

● 擴充性 :面向寫入密集型應用程式,MySQL 的性能變得不穩定。當資料規模超過單個節點的容量時,性能會受到影響。

● 高可用性 :雖然 MySQL 提供了複制和叢集等功能以實作高可用性,但要有效地設定和管理這些功能需要仔細規劃、配置和持續監控。此外,傳統的 MySQL 複制可能出現延遲,進而導緻資料不一緻。

● 實時分析 :随着企業對事務性資料的實時洞察的需求增加,在 MySQL 架構中将聯機事務處理(OLTP)和線上分析處理(OLAP)系統分離的架構會産生性能上的瓶頸。分析查詢可能會影響事務處理的性能。而使用單獨的分析資料庫處理這些查詢則增加了技術棧複雜性。

● 應對現代架構 :現代架構向雲原生和微服務的轉變對 MySQL 這樣的單機系統提出了挑戰。

當企業的基礎設施無法滿足需求,資料規模從 1TB 增長到 100TB+,同時仍期望保持相同的性能時,這些限制帶來的不便就愈發明顯。

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

随着 MySQL 5.7 EOL 即将到來,現在是重新評估選擇并為未來的資料處理能力做好準備的時候了。

Option 1

更新到官方支援的 MySQL 版本

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

● 優點 :這個選項確定了對現有 MySQL 架構的持續支援,能夠持續擷取新功能和性能改進。通常,這是最簡單的選擇,因為它對現有基礎設施和應用代碼的改動較少。

● 缺點 : 更新到較新版本的 MySQL 并不能解決 MySQL 架構導緻的擴充性、高可用性和處理現代雲原生架構相關的固有挑戰。同時,它還依賴于 Oracle 接下來的戰略方向,比如對 MySQL 産品的支援力度。

Option 2

采用第三方 MySQL 商業版本

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

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

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

Option 3

遷移到分布式資料庫

如果現有的應用程式需要超出單個 MySQL 執行個體所能提供的可擴充性和高可用性,那麼分布式資料庫(如 TiDB)可能是一個合适的選擇。

● 優點 : 分布式資料庫将傳統關系型資料庫管理系統(RDBMS)的優點(ACID 特性、對 SQL 的支援)與 NoSQL 系統的優點(水準可擴充性、高可用性)結合在一起。特别是 TiDB,完全相容 MySQL 5.7,使得遷移變得更加容易。

● 缺點 : 遷移到分布式資料庫的過程可能需要進行全面評估,而不僅僅是簡單地更新 MySQL 或切換到分支版本。雖然 TiDB 相容 MySQL,但可能不支援某些 MySQL 特定的功能,并且可能需要對現有的應用程式代碼進行一定範圍的調整。

3、TiDB ——相容 MySQL 的分布式資料庫

想象一下,如果既能夠像操作 MySQL 一樣熟悉,同時又獲得分布式資料庫系統的可擴充性和可用性,那該多好?這恰是 TiDB 所擅長的。

TiDB ( https://www.pingcap.com/tidb/ ) 是由 PingCAP 開發的領先的開源分布式資料庫。它無縫地結合了關系型資料庫和 NoSQL 資料庫的優勢,将傳統關系型資料庫管理系統的 ACID 特性、 SQL 相容性與 NoSQL 系統的水準可擴充性相結合。

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

圖 1:TiDB的架構

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

● 水準擴充性 :TiDB 的分布式架構允許資料自動分片到多個節點上。随着工作負載的增長,您可以輕松地向叢集添加更多節點來處理不斷增加的需求,而不會出現顯著的性能下降。

● 高可用性 :TiDB 通過在多個節點上複制資料來保持資料的備援,并實作了自動故障切換。即使叢集中的一個或多個節點故障,也能確定您的資料保持可通路狀态。

● 強一緻性 :在許多分布式資料庫中,一緻性和可用性之間存在權衡。但是 TiDB 不是這樣。它使用一種稱為 Percolator 的分布式事務協定,保證了快照隔離一緻性,確定叢集中的所有節點對資料具有一緻的視圖。

● MySQL 相容性 :TiDB 支援 MySQL 協定,并且與 MySQL 文法具有廣泛的相容性。這意味着許多現有的應用程式、架構和針對 MySQL 設計的工具可以與 TiDB 一起使用。

● 實時分析 :TiDB 利用 混合事務/分析處理(HTAP) 的能力,實作實時營運分析。TiKV、TiFlash 可按需部署在不同的節點上,解決 HTAP 資源隔離的問題。TiDB 提供了一個統一的平台,用于即時高效地分析營運資料。

● 雲原生架構 :TiDB 設計時考慮了雲原生的原則,是以非常适合在雲環境中部署。它支援 Docker 和 Kubernetes 等容器化技術,并內建了阿裡雲、AWS、GCP 等雲平台。

總結

資料庫選型是一項關鍵決策,它對組織的增長和成功有着重大影響。随着 MySQL 5.7 EOL 到來,現在是 MySQL 使用者進行評估、計劃并為未來做好準備的時候了。如果您面臨可擴充性、高可用性、實時分析或适應雲原生架構等挑戰,從 MySQL 遷移到分布式資料庫(如 TiDB)可能是一個理想的選擇。

然而,同樣重要的是,要認識到 MySQL 和 TiDB 在 MySQL 生态系統中可以共存并互相協作的可能性。許多客戶已經意識到同時使用 MySQL 和 TiDB 的好處,特别是對于大規模應用程式而言。通過在使用 MySQL 的同時,企業利用 TiDB 可以實作更高的可擴充性、高可用性和混合工作負載處理能力。這種協同作用可以實作無縫的資料管理,并滿足現代應用程式不斷發展的需求。

繼續閱讀