2019 年 6 月 28 日,TiDB 發佈 3.0 GA 版本,對應的 TiDB Ansible 版本爲 3.0.0。
相比於 V2.1,V3.0.0 版本在如下方面有重要改進:html
EXPLAIN ANALYZE
,SQL Trace 功能方便排查問題等。SQL Plan Management
等特性。新功能算法
NTILE
,LEAD
,LAG
、PERCENT_RANK
、NTH_VALUE
、CUME_DIST
、FIRST_VALUE
、LAST_VALUE
、RANK
、DENSE_RANK
、ROW_NUMBER
函數完善 Table Partition 功能:sql
SQL Plan Management
功能,經過綁定 SQL 執行計劃確保查詢的穩定性(實驗特性)SQL 優化器數據庫
NOT EXISTS
子查詢,轉化爲 Anti Semi Join 提高性能Outer Join
常量傳播,新增 Outer Join
消除優化規則,避免無效計算,提高性能IN
子查詢,先聚合後執行 Inner Join
,提高性能_tidb_rowid
查詢邏輯,避免全表掃描,提高性能Join Order
,提高多表關聯的執行速度FAST ANALYZE
,經過在各個 Region 中隨機採樣避免全表掃描的方式提高統計信息收集性能Analyze
功能,提高統計信息收集性能DO
語句中使用子查詢prepare
/execute
,支持不帶參數的 DDL 語句stats-lease
值爲 0 時系統的行爲,使其自動加載統計SQL 執行引擎安全
EXECUTE
語句輸出用戶變量,COMMIT
語句輸出慢查詢日誌,方便排查問題EXPLAIN ANALYZE
功能,提高SQL 調優易用性admin show next_row_id
功能,方便獲取下一行 IDJSON_QUOTE
、JSON_ARRAY_APPEND
、JSON_MERGE_PRESERVE
、BENCHMARK
、COALESCE
、NAME_CONST
6 個內建函數TableReader
、IndexReader
和 IndexLookupReader
算子內存追蹤控制ON
條件admin show ddl jobs
的性能split table region
語句,手動分裂表的 Region,緩解熱點問題split index region
語句,手動分裂索引的 Region 緩解熱點問題DDL網絡
utf8
轉換到 utf8mb4
的功能utf8
變爲 utf8mb4
alter schema
語句修改數據庫 charset 和 collation 功能INPLACE
/INSTANT
功能SHOW CREATE VIEW
功能SHOW CREATE USER
功能ADD INDEX
的併發數功能CREATE TABLE
時預先分配 Region,緩解建表後大量寫入形成的寫熱點問題ddl_error_count_limit
全局變量,控制 DDL 任務重次數AUTO_INCREMENT
時利用 SHARD_ROW_ID_BITS
打散行 ID 功能,緩解熱點問題事務多線程
優化事務處理邏輯,適應更多場景,具體以下:併發
tidb_disable_txn_auto_retry
的默認值爲 on
,即不會重試非自動提交的事務tidb_batch_commit
系統變量控制將事務拆分紅多個事務併發執行tidb_low_resolution_tso
系統變量控制批量獲取 tso
個數,減小事務獲取 tso
的次數以適應某些數據一致性要求較低的場景tidb_skip_isolation_level_check
變量控制事務檢查隔離級別設置爲 SERIALIZABLE 時是否報錯tidb_disable_txn_auto_retry
系統變量的行爲,修改成影響全部的可重試錯誤權限管理框架
- 對 `ANALYZE`、`USE`、`SET GLOBAL`、`SHOW PROCESSLIST` 語句進行權限檢查 - 新增基於角色的權限訪問控制功能 (RBAC)(**實驗特性**)
Server運維
優化慢查詢日誌,具體包括:
INFORMATION_SCHEMA.SLOW_QUERY
,ADMIN SHOW SLOW
語句查詢慢查詢日誌unix_socket
方式鏈接數據庫Trace
功能/debug/zip
HTTP 接口,獲取 TiDB 實例的信息,方便排查問題優化監控項,方便排查問題,以下:
high_error_rate_feedback_total
監控項,監控真實數據量與統計信息估算數據量之間的差距kill query
語句執行邏輯,提高性能,確保資源正確釋放config-check
檢查配置文件合法性tidb_back_off_weight
系統變量,控制內部出錯重試的退避時間wait_timeout
、interactive_timeout
系統變量,控制鏈接空閒超過變量的值,系統自動斷開鏈接。兼容性
ALLOW_INVALID_DATES
SQL modeSHOW CREATE DATABASE IF NOT EXISTS
語法API
remove-tombstone
接口,用於清理 Tombstone StoreScanRegions
接口,用於批量查詢 Region 信息GetOperator
接口,用於查詢運行中的 OperatorGetStores
接口的性能配置
enable-two-way-merge
,用於控制 Region merge 的方向hot-region-schedule-limit
,用於控制熱點 Region 調度速度hot-region-cache-hits-threshold
,連續命中閥值用於判斷熱點store-balance-rate
配置,用於控制每分鐘產生 balance Region Operator 數量的上限調度器優化
waitingOperator
隊列,用於優化不一樣調度器之間資源競爭的問題shuffle-hot-region
調度器,解決穩定性測試易用性問題模擬器
其餘
raw_scan
和 raw_batch_scan
功能Engine
Iterator Key Bound Option
的內存分配和拷貝,提高性能Server
batch commands
的上下文切換開銷,提高性能RaftStore
Coprocessor
EXPLAIN ANALYZE
語句提供算子執行詳情TiDB Lightning
TiKV-Importer
導入數據性能TiKV-Importer
支持對 upload SST 到 TiKV 限速功能TiDB Binlog
advertise-addr
配置,支持容器環境中使用橋接模式sync-diff-inspector
升級監控組件版本到安全的版本
table-regions.py
腳本,新增按表顯示 leader 分佈功能官網連接:https://www.pingcap.com/index.html