隨着 2021 年春天的來臨和 PingCAP 年滿 6 週歲記念日的到來,TiDB 5.0 迎來正式 GA。通過近一年緊鑼密鼓的開發和打磨,TiDB 5.0 成爲邁向企業級核心場景的里程碑版本:TiDB 5.0 的性能和穩定性獲得顯著提高,從而具有更強大的 OLTP 金融級核心場景的服務能力;在原有 HTAP 引擎 TiFlash 的基礎上引入 MPP 架構,TiDB 使得衆多企業的實時/交互式 BI 成爲現實,爲高成長企業和數字化創新場景提供了一棧式的數據服務底座,加速帶動 HTAP 進入更多大型企業的數字化場景。算法
此外,TiDB 5.0 新增多項企業級特性,集成更豐富的大數據生態,提供更加簡易的運維體驗,幫助企業更高效地基於 TiDB 構建和擴展應用。秉持開源、開放、創新的發展路徑,TiDB 將持續爲企業構建「融合,簡化,可靠」的分佈式數據庫平臺。sql
相比於 TiDB 4.0,TiDB 5.0 在性能方面取得了巨大的進步,經過提供聚簇索引、異步提交事務、TiFlash MPP 等功能, 在 Sysbench 和 TPC-C 等 OLTP 的基準測試中,得到 20% ~ 80% 的性能提高。基於 100 GB 數據量 TPC-H 查詢的結果顯示:TiDB 5.0 在同等資源下,MPP 引擎的整體性能是 Greenplum 6.15.0 與 Apache Spark 3.1.1 兩到三倍之間,部分查詢可達 8 倍性能差別。以下是在一些通用性能測試場景下面的數據:數據庫
組件名稱 | 配置信息 | 數量 |
---|---|---|
PD | m5.xlarge (AWS) | 3 |
TiDB | c5.4xlarge (AWS) | 3 |
TiKV | i3.4xlarge (AWS) | 3 |
16 張表,每張表有 1000 萬行數據c#
相比於 TiDB 4.0,TiDB 5.0 在穩定性上面取得了巨大的進步。經過優化 TiDB 調度過程當中對 I/O、網絡、CPU、內存等資源的佔用,大幅減小 QPS 和延時由於資源被搶佔而出現的性能抖動問題,在 TPC-C OLTP 的基準測試中,衡量 TPC-C tpmC 抖動標準差的值小於等於 2%。安全
Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz 40Core 189GB Memory 3TB SSD性能優化
用戶在排查 SQL 語句性能問題時,須要詳細的信息來判斷緣由。TiDB 5.0 經過 EXPLAIN 可查看日誌、監控等詳細信息,幫助用戶提高排查問題的效率。網絡
在 TiDB 5.0 中,TiUP 支持一鍵式環境檢查並給出修復建議,自動修復檢查過程當中發現的環境問題,優化了多項集羣部署的操做邏輯,便於 DBA 更快地部署標準的 TiDB 生產集羣。新版本的 TiUP 提供業務無感知的升級體驗,升級過程當中的性能抖動控制在 10~30 秒。架構
在升級 TiDB 時,新增自動捕獲並綁定查詢計劃的功能,由系統自動捕獲並綁定最近一次查詢計劃而後存儲在系統表中,確保升級過程當中的 SQL 仍然走綁定的執行計劃,併發
確保穩定性。升級完成後,DBA 能夠導出綁定的查詢計劃,分析並決策是否要刪除綁定。運維
TiDB 5.0 支持不可見索引 (Invisible Indexes),DBA 在調試和選擇相對最優的索引時,能夠經過 SQL 語句將某個索引設置成 Visible
或者 Invisible
,避免執行消耗資源較多的操做,例如:DROP INDEX
或 ADD INDEX
。
在 TiDB 5.0 性能調優或者運維過程當中,用戶能夠根據實際須要或者基於 EXPLAIN ANALYZE 測試選擇優化過的 SQL 語句,經過 SQL BINDING 將優化過的 SQL 語句與業務代碼執行的 SQL 語句綁定,確保穩定性。
數據遷移類工具支持 AWS S3(也包含支持 S3 協議的其餘存儲服務)做爲數據遷移的中間轉存介質,同時支持將 Aurora 快照數據直接初始化到 TiDB 中,豐富了數據從 AWS S3/Aurora 遷移到 TiDB 的選擇。
數據導入工具 TiDB Lightning 針對 DBaaS AWS T1.standard 配置(及其等同配置)的 TiDB 集羣進行了數據導入性能優化,測試結果顯示使用 TiDB Lightning 導入 1TB TPCC 數據到 TiDB,性能提高了 40%,由 254 GiB/h 提高到了 366 GiB/h。
TiCDC 集成 Kafka Connect (Confluent Platform),經過 Kafka Connectors 協議,支持將 TiDB 的數據變動同步到不一樣關係型或非關係型數據庫,例如:Kafka, Hadoop, Oracle 等,幫助企業將業務數據流轉到異構數據庫,造成數據閉環。
TiCDC 支持在多套 TiDB 集羣之間相互複製數據,可用於多個 TiDB 集羣之間數據的備份、容災與數據匯聚等場景。
悲觀事務模式下,若是事務所涉及到的表存在併發的 DDL 操做或者 SCHEMA VERSION 變動,系統自動將該事務的 SCHEMA VERSION 更新到最新版本,以此確保事務的成功提交。
TiDB 5.0 引入 Raft Joint Consensus 算法將 Region 成員變動操做中的「添加」和「刪除」合併爲一個操做,併發送給全部成員,提高 Region 成員變動時的可用性。在變動過程當中,Region 處於中間的狀態,若是任何被修改的成員失敗,系統仍然具有高可用能力。
爲知足企業安全合規例如《通用數據保護條例》(GDPR) 的要求,TiDB 在輸出錯誤信息和日誌信息時,支持對敏感信息(例如身份證信息、信用卡號等)進行脫敏處理,避免敏感信息泄露。
此外,新版本進一步優化了內存管理模塊,跟蹤統計聚合函數的內存使用狀況,從而下降系統 OOM 的風險。在 SQL 功能方面,TiDB 5.0 支持 INTERSECT
和 EXCEPT
操做符、支持 List 和 List Column 分區表,在字符集和排序規則方面支持 utf8mb4_unicode_ci
和 utf8_unicode_ci
排序規則。
做爲企業級開源分佈式數據庫,TiDB 5.0 在性能、穩定性、易用性、高可用與安全合規等方面都取得了巨大的進步,並增長了多個企業級特性,在 OLTP Scale 的基礎之上實現了一棧式數據實時分析的需求,將帶動企業用戶藉助加強性 HTAP 的能力,加速推動數字化轉型與升級。
今天就去下載吧!
特別感謝,TiDB 的開發者社區和用戶社區的全部小夥伴爲 TiDB 發展所做出的貢獻。從 TiDB 4.0 發佈以來總計有 538 位 Contributor 提交了 12513 個 PR 幫助咱們一塊兒完成企業級核心場景的里程碑版本的開發。如何讓 TiDB 在這個時代最優秀的場景中打磨從而不停的迭代和進化?咱們相信惟有極致的開放才能讓這一切變爲可能:開放的源代碼,開放的社區,開放的生態和開放的心態!