做者:申礫git
今年 1 月份,咱們發佈了 TiDB 3.0.0 Beta 版本,DevCon 上也對這個版本作了介紹,通過兩個月的努力,今天推出了下一個 Beta 版本 3.0.0 Beta.1。讓咱們看一下這個版本相比於以前有什麼改進。github
查詢計劃正確性和穩定性對於關係型數據庫來講相當重要,3.0.0 Beta.1 對這部分進行了優化,引入一個叫 Skyline Pruning
的框架,經過一些啓發式規則來更快更準確地找到最好的查詢計劃。詳細信息能夠參考 這篇設計文檔。數據庫
日誌是排查程序問題的重要工具,統一且結構化的日誌格式不但有利於用戶理解日誌內容,也有助於經過工具對日誌進行定量分析。3.0.0 Beta.1 版本中對 tidb/pd/tikv 這三個組件的日誌格式進行了統一,詳細格式參見 這篇文檔。性能優化
慢查詢日誌是經常使用於排查性能問題, 在 3.0.0 Beta.1 以前慢查詢日誌跟其餘日誌混合存儲在同個日誌文件,而且格式爲自定義的格式,不支持使用 SQL 語句或工具對其進行分析,嚴重影響排查問題的效率。從3.0.0 Beta.1 版本開始 TiDB 將查詢日誌文件輸出到單獨的日誌文件中(默認日誌文件名爲 tidb-slow.log
),用戶能夠系統變量或配置文件進行修改,同時兼容 MySQL 慢查詢日誌格式,支持使用 MySQL 生態分析工具(如 pt-query-digest
)對慢查詢日誌進行分析。負載均衡
除了慢查詢日誌以外,還增長一個虛擬表 INFORMATION_SCHEMA.SLOW_QUERY
,能夠對慢查詢日誌進行展現和過濾。框架
關於如何處理慢查詢,咱們後續還會專門寫一篇文檔進行介紹。若是你有一些好用的慢查詢處理工具,也歡迎和咱們進行交流。分佈式
MySQL 所支持的 Window Function TiDB 3.0.0 Beta.1 版本已經全都支持,這爲 TiDB 向 MySQL 8 兼容邁出了一大步。想體驗功能的能夠下載版本嚐鮮,可是不建議在生產中使用,這項功能還須要大量的測試,歡迎你們測試並反饋問題。工具
熱點調度是保持集羣負載均衡的重要手段,可是一些場景下默認的熱點調度顯得不那麼智能,甚至會對集羣負載形成影響,因此 3.0.0 Beta.1 中增長了對負載均衡策略的人工干預方法,能夠臨時調整調度策略。性能
目前已經完成 TableScan 算子,單 TableScan 即掃表性能提高 5% ~ 30%,接下來會對 IndexScan、Filter、Aggregation 等算子以及表達式計算框架進行優化。測試
Lightning 是將大量數據導入 TiDB 的最佳方式,在特定表結構,單表數量,集羣已有數量等條件下 1TB 數據導入性能提高 1 倍,時間從 6 小時下降到 3 小時之內,性能優化的腳步不會停,咱們指望進一步提高性能,下降時間,指望能優化到 2 小時之內。
/debug/zip
HTTP 接口, 能夠方便地一鍵獲取當前 TiDB 實例的信息,便於診斷問題。更多的改進能夠參見 Release Notes,除了這些已經完成的特性以外,還有一些正在作的事情,好比 RBAC、Plan Management 都在密集開發中,但願在下一個 Beta 版本或者 RC 版本中能與你們見面。
在這個版本的開發過程當中,社區依然給咱們頗有力的支持,好比潘迪同窗一直在負責 View 的完善和測試,美團的同窗在推動 Plan Management
,一些社區同窗參與了 TiDB 性能改進 活動。在這裏對各位貢獻者表示由衷的感謝。接下來咱們會開展更多的專項開發活動以及一系列面向社區的培訓課程,但願能對你們瞭解如何作分佈式數據庫有幫助。
One More Thing
TiDB DevCon 2019 上對外展現的全新分析類產品 TiFlash 已經完成 Alpha 版本的開發,目前已經在進行內部測試,昨天試用了一下以後,我想說「真香」。