摘要:年月日,發(fā)布版,對應的。相比版本,該版本對系統(tǒng)穩(wěn)定性優(yōu)化器統(tǒng)計信息以及執(zhí)行引擎做了很多改進。新特性支持支持支持支持優(yōu)化器重新支持聚合消除的優(yōu)化規(guī)則優(yōu)化子查詢,將其轉化為添加變量以支持新的優(yōu)化器。
2019 年 1 月 19 日,TiDB 發(fā)布 3.0 Beta 版,對應 master branch 的 TiDB-Ansible。相比 2.1 版本,該版本對系統(tǒng)穩(wěn)定性、優(yōu)化器、統(tǒng)計信息以及執(zhí)行引擎做了很多改進。
TiDB
新特性
支持 View
支持 Window Function
支持 Range Partition
支持 Hash Partition
SQL 優(yōu)化器
重新支持聚合消除的優(yōu)化規(guī)則
優(yōu)化 NOT EXISTS 子查詢,將其轉化為 Anti Semi Join
添加 tidb_enable_cascades_planner 變量以支持新的 Cascades 優(yōu)化器。目前 Cascades 優(yōu)化器尚未實現(xiàn)完全,默認關閉
支持在事務中使用 Index Join
優(yōu)化 Outer Join 上的常量傳播,使得對 Join 結果里和 Outer 表相關的過濾條件能夠下推過 Outer Join 到 Outer 表上,減少 Outer Join 的無用計算量,提升執(zhí)行性能
調整投影消除的優(yōu)化規(guī)則到聚合消除之后,消除掉冗余的 Project 算子
優(yōu)化 IFNULL 函數(shù),當輸入?yún)?shù)具有非 NULL 的屬性的時候,消除該函數(shù)
支持對 _tidb_rowid 構造查詢的 Range,避免全表掃,減輕集群壓力
優(yōu)化 IN 子查詢?yōu)橄染酆虾笞?Inner Join 并,添加變量 tidb_opt_insubq_to_join_and_agg 以控制是否開啟該優(yōu)化規(guī)則并默認打開
支持在 DO 語句中使用子查詢
添加 Outer Join 消除的優(yōu)化規(guī)則,減少不必要的掃表和 Join 操作,提升執(zhí)行性能
修改 TIDB_INLJ 優(yōu)化器 Hint 的行為,優(yōu)化器將使用 Hint 中指定的表當做 Index Join 的 Inner 表
更大范圍的啟用 PointGet,使得當 Prepare 語句的執(zhí)行計劃緩存生效時也能利用上它
引入貪心的 Join Reorder 算法,優(yōu)化多表 Join 時 Join 順序選擇的問題
支持 View
支持 Window Function
當 TIDB_INLJ 未生效時,返回 warning 給客戶端,增強易用性
支持根據(jù)過濾條件和表的統(tǒng)計信息推導過濾后數(shù)據(jù)的統(tǒng)計信息的功能
增強 Range Partition 的 Partition Pruning 優(yōu)化規(guī)則
SQL 執(zhí)行引擎
優(yōu)化 Merge Join 算子,使其支持空的 ON 條件
優(yōu)化日志,打印執(zhí)行 EXECUTE 語句時使用的用戶變量
優(yōu)化日志,為 COMMIT 語句打印慢查詢信息
支持 EXPLAIN ANALYZE 功能,使得 SQL 調優(yōu)過程更加簡單
優(yōu)化列很多的寬表的寫入性能
支持 admin show next_row_id
添加變量 tidb_init_chunk_size 以控制執(zhí)行引擎使用的初始 Chunk 大小
完善 shard_row_id_bits,對自增 ID 做越界檢查
Prepare 語句
對包含子查詢的 Prepare 語句,禁止其添加到 Prepare 語句的執(zhí)行計劃緩存中,確保輸入不同的用戶變量時執(zhí)行計劃的正確性
優(yōu)化 Prepare 語句的執(zhí)行計劃緩存,使得當語句中包含非確定性函數(shù)的時候,該語句的執(zhí)行計劃也能被緩存
優(yōu)化 Prepare 語句的執(zhí)行計劃緩存,使得 DELETE/UPDATE/INSERT 的執(zhí)行計劃也能被緩存
優(yōu)化 Prepare 語句的執(zhí)行計劃緩存,當執(zhí)行 DEALLOCATE 語句時從緩存中剔除對應的執(zhí)行計劃
優(yōu)化 Prepare 語句的執(zhí)行計劃緩存,通過控制其內存使用以避免緩存過多執(zhí)行計劃導致 TiDB OOM 的問題
優(yōu)化 Prepare 語句,使得 ORDER BY/GROUP BY/LIMIT 子句中可以使用 “?” 占位符
權限管理
增加對 ANALYZE 語句的權限檢查
增加對 USE 語句的權限檢查
增加對 SET GLOBAL 語句的權限檢查
增加對 SHOW PROCESSLIST 語句的權限檢查
Server
支持了對 SQL 語句的 Trace 功能
支持了插件框架
支持同時使用 unix_socket 和 TCP 兩種方式連接數(shù)據(jù)庫
支持了系統(tǒng)變量 interactive_timeout
支持了系統(tǒng)變量 wait_timeout
提供了變量 tidb_batch_commit,可以按語句數(shù)將事務分解為多個事務
支持 ADMIN SHOW SLOW 語句,方便查看慢日志
兼容性
支持了 ALLOW_INVALID_DATES 這種 SQL mode
提升了 load data 對 CSV 文件的容錯能力
支持了 MySQL 320 握手協(xié)議
支持將 unsigned bigint 列聲明為自增列
支持 SHOW CREATE DATABASE IF NOT EXISTS 語法
當過濾條件中包含用戶變量時不對其進行謂詞下推的操作,更加兼容 MySQL 中使用用戶變量模擬 Window Function 的行為
DDL
支持快速恢復誤刪除的表
支持動態(tài)調整 ADD INDEX 的并發(fā)數(shù)
支持更改表或者列的字符集到 utf8/utf8mb4
默認字符集從 utf8 變?yōu)?utf8mb4
支持 RANGE PARTITION
Tools
TiDB-Lightning
大幅優(yōu)化 SQL 轉 KV 的處理速度
對單表支持 batch 導入,提高導入性能和穩(wěn)定性
PD增加 RegionStorage 多帶帶存儲 Region 元信息
增加 shuffle hot region 調度
增加調度參數(shù)相關 Metrics
增加集群 Label 信息相關 Metrics
增加導入數(shù)據(jù)場景模擬
修復 Leader 選舉相關的 Watch 問題
TiKV支持了分布式 GC
在 Apply snapshot 之前檢查 RocksDB level 0 文件,避免產生 Write stall
支持了逆向 raw_scan 和 raw_batch_scan
更好的夏令時支持
支持了使用 HTTP 方式獲取監(jiān)控信息
支持批量方式接收和發(fā)送 Raft 消息
引入了新的存儲引擎 Titan
升級 gRPC 到 v1.17.2
支持批量方式接收客戶端請求和發(fā)送回復
多線程 Apply
線程 Raftstore
英文版 Release Notes
https://github.com/pingcap/docs/blob/master/releases/3.0beta.md
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/17879.html
摘要:年月日,發(fā)布版,對應的版本為。相比版本,該版本對系統(tǒng)穩(wěn)定性易用性功能優(yōu)化器統(tǒng)計信息以及執(zhí)行引擎做了很多改進。 2019 年 03 月 26 日,TiDB 發(fā)布 3.0.0 Beta.1 版,對應的 TiDB-Ansible 版本為 3.0.0 Beta。相比 3.0.0 Beta 版本,該版本對系統(tǒng)穩(wěn)定性、易用性、功能、優(yōu)化器、統(tǒng)計信息以及執(zhí)行引擎做了很多改進。 TiDB SQL ...
閱讀 1539·2021-11-24 09:39
閱讀 1845·2021-11-22 15:25
閱讀 3814·2021-11-19 09:40
閱讀 3356·2021-09-22 15:31
閱讀 1370·2021-07-29 13:49
閱讀 1306·2019-08-26 11:59
閱讀 1380·2019-08-26 11:39
閱讀 986·2019-08-26 11:00