2019 年 03 月 26 日,TiDB 發佈 3.0.0 Beta.1 版,對應的 TiDB-Ansible 版本爲 3.0.0 Beta。相比 3.0.0 Beta 版本,該版本對系統穩定性、易用性、功能、優化器、統計信息以及執行引擎作了不少改進。git
TiDB
- SQL 優化器
- 支持使用 Sort Merge Join 計算笛卡爾積
- 支持 Skyline Pruning,用一些規則來防止執行計劃過於依賴統計信息
- 支持 Window Functions
NTILE
LEAD
和 LAG
PERCENT_RANK
NTH_VALUE
CUME_DIST
FIRST_VALUE
和 LAST_VALUE
RANK
和 DENSE_RANK
RANGE FRAMED
ROW FRAMED
ROW NUMBER
- 增長了一類統計信息,表示列和 handle 列之間順序的相關性
- SQL 執行引擎
- 增長內建函數
JSON_QUOTE
JSON_ARRAY_APPEND
JSON_MERGE_PRESERVE
BENCHMARK
COALESCE
NAME_CONST
- 根據查詢上下文優化 Chunk 大小,下降 SQL 執行時間和集羣的資源消耗
- 權限管理
- 支持
SET ROLE
和 CURRENT_ROLE
- 支持
DROP ROLE
- 支持
CREATE ROLE
- Server
- 新增
/debug/zip
HTTP 接口,獲取當前 TiDB 實例的信息
- 支持使用
show pump status
/show drainer status
語句查看 Pump/Drainer 狀態
- 支持使用 SQL 語句在線修改 Pump/Drainer 狀態
- 支持給 SQL 文本加上 HASH 指紋,方便追查慢 SQL
- 新增
log_bin
系統變量,默認:0,管理 binlog 開啓狀態,當前僅支持查看狀態
- 支持經過配置文件管理髮送 binlog 策略
- 支持經過內存表
INFORMATION_SCHEMA.SLOW_QUERY
查詢慢日誌
- 將 TiDB 顯示的 MySQL Version 從 5.7.10 變動爲 5.7.25
- 統一日誌格式規範,利於工具收集分析
- 增長監控項
high_error_rate_feedback_total
,記錄實際數據量與統計信息估算數據量差距狀況
- 新增 Database 維度的 QPS 監控項 , 能夠經過配置項開啓
- DDL
- 增長
ddl_error_count_limit
全局變量,默認值:512,限制 DDL 任務重試次數,超過限制次數會取消出錯的 DDL
- 支持 ALTER ALGORITHM
INPLACE
/INSTANT
- 支持
SHOW CREATE VIEW
語句
- 支持
SHOW CREATE USER
語句
PD
- 模擬器
- 支持不一樣 store 可採用不一樣的心跳間隔時間
- 添加導入數據的場景
- 熱點調度可配置化
- 增長 store 地址爲維度的監控項,代替原有的 Store ID
- 優化
GetStores
開銷,加快 Region 巡檢週期
- 新增刪除 Tombstone Store 的接口
TiKV
- 優化 Coprocessor 計算執行框架,完成 TableScan 算子,單 TableScan 即掃表操做性能提高 5% ~ 30% 實現行
BatchRows
和列 BatchColumn
的定義
- 實現
VectorLike
使得編碼和解碼的數據可以用統一的方式訪問
- 定義
BatchExecutor
接口,實現將請求轉化爲 BatchExecutor
的方法
- 實現將表達式樹轉化成 RPN 格式
- TableScan 算子實現爲 Batch 方式,經過向量化計算加速計算
- 統一日誌格式規範,利於工具收集分析
- 支持 Raw Read 接口使用 Local Reader 進行讀
- 新增配置信息的 Metrics
- 新增 Key 越界的 Metrics
- 新增碰到掃越界錯誤時 Panic 或者報錯選項
- 增長 Insert 語義,只有在 Key 不存在的時候 Prewrite 才成功,消除 Batch Get
- Batch System 使用更加公平的 batch 策略
- tikv-ctl 支持 Raw scan
Tools
- TiDB-Binlog
- 新增 Arbiter 工具支持從 Kafka 讀取 binlog 同步到 MySQL
- Reparo 支持過濾不須要同步的文件
- 支持同步 generated column
- Lightning
- 支持禁用 TiKV periodic Level-1 compaction,當 TiKV 集羣爲 2.1.4 或更高時,在導入模式下會自動執行 Level-1 compaction
- 根據
table_concurrency
配置項限制 import engines 數量,默認值:16,防止過多佔用 importer 磁盤空間
- 支持保存中間狀態的 SST 到磁盤,減小內存使用
- 優化 TiKV-Importer 導入性能,支持將大表的數據和索引分離導入
- 支持 CSV 文件導入
- 數據同步對比工具 (sync-diff-inspector)
- 支持使用 TiDB 統計信息來劃分對比的 chunk
- 支持使用多個 column 來劃分對比的 chunk
Ansible
![](http://static.javashuo.com/static/loading.gif)