摘要:年月日,發(fā)布版。相比版本,該版本對(duì)系統(tǒng)穩(wěn)定性性能兼容性易用性做了大量改進(jìn)。
2018 年 11 月 30 日,TiDB 發(fā)布 2.1 GA 版。相比 2.0 版本,該版本對(duì)系統(tǒng)穩(wěn)定性、性能、兼容性、易用性做了大量改進(jìn)。
TiDB SQL 優(yōu)化器優(yōu)化 Index Join 選擇范圍,提升執(zhí)行性能
優(yōu)化 Index Join 外表選擇,使用估算的行數(shù)較少的表作為外表
擴(kuò)大 Join Hint TIDB_SMJ 的作用范圍,在沒(méi)有合適索引可用的情況下也可使用 Merge Join
加強(qiáng) Join Hint TIDB_INLJ 的能力,可以指定 Join 中的內(nèi)表
優(yōu)化關(guān)聯(lián)子查詢(xún),包括下推 Filter 和擴(kuò)大索引選擇范圍,部分查詢(xún)的效率有數(shù)量級(jí)的提升
支持在 UPDATE 和 DELETE 語(yǔ)句中使用 Index Hint 和 Join Hint
支持更多函數(shù)下推:ABS/CEIL/FLOOR/IS TRUE/IS FALSE
優(yōu)化內(nèi)建函數(shù) IF 和 IFNULL 的常量折疊算法
優(yōu)化 EXPLAIN 語(yǔ)句輸出格式, 使用層級(jí)結(jié)構(gòu)表示算子之間的上下游關(guān)系
SQL 執(zhí)行引擎重構(gòu)所有聚合函數(shù),提升 Stream 和 Hash 聚合算子的執(zhí)行效率
實(shí)現(xiàn)并行 Hash Aggregate 算子,部分場(chǎng)景下有 350% 的性能提升
實(shí)現(xiàn)并行 Project 算子,部分場(chǎng)景有 74% 的性能提升
并發(fā)地讀取 Hash Join 的 Inner 表和 Outer 表的數(shù)據(jù),提升執(zhí)行性能
優(yōu)化 REPLACE INTO 語(yǔ)句的執(zhí)行速度,性能提升 10x
優(yōu)化時(shí)間類(lèi)型的內(nèi)存占用,時(shí)間類(lèi)型數(shù)據(jù)的內(nèi)存使用降低為原來(lái)的一半
優(yōu)化點(diǎn)查的查詢(xún)性能, Sysbench 點(diǎn)查效率提升 60%
TiDB 插入和更新寬表,性能提升接近 20 倍
支持在配置文件中設(shè)置單個(gè)查詢(xún)的內(nèi)存使用上限
優(yōu)化 Hash Join 的執(zhí)行過(guò)程,當(dāng) Join 類(lèi)型為 Inner Join 或者 Semi Join 時(shí),如果內(nèi)表為空,不再讀取外表數(shù)據(jù),快速返回結(jié)果
支持 EXPLAIN ANALYZE 語(yǔ)句,用于查看 Query 執(zhí)行過(guò)程中各個(gè)算子的運(yùn)行時(shí)間,返回結(jié)果行數(shù)等運(yùn)行時(shí)統(tǒng)計(jì)信息
統(tǒng)計(jì)信息支持只在一天中的某個(gè)時(shí)間段開(kāi)啟統(tǒng)計(jì)信息自動(dòng) ANALYZE 的功能
支持根據(jù)查詢(xún)的反饋?zhàn)詣?dòng)更新表的統(tǒng)計(jì)信息
支持通過(guò) ANALYZE TABLE WITH BUCKETS 語(yǔ)句配置直方圖中桶的個(gè)數(shù)
優(yōu)化等值查詢(xún)和范圍查詢(xún)混合的情況下使用直方圖估算 Row Count 的算法
表達(dá)式
支持內(nèi)建函數(shù):
json_contains ?
json_contains_path
encode/decode
Server支持在單個(gè) tidb-server 實(shí)例內(nèi)部對(duì)沖突事務(wù)排隊(duì),優(yōu)化事務(wù)間沖突頻繁的場(chǎng)景下的性能
支持 Server Side Cursor
新增 HTTP 管理接口
打散 table 的 regions 在 TiKV 集群中的分布
控制是否打開(kāi) general log
在線(xiàn)修改日志級(jí)別
查詢(xún) TiDB 集群信息
添加 auto_analyze_ratio 系統(tǒng)變量控制自動(dòng) Analyze 的閾值
添加 tidb_retry_limit 系統(tǒng)變量控制事務(wù)自動(dòng)重試的次數(shù)
添加 tidb_disable_txn_auto_retry 系統(tǒng)變量控制事務(wù)是否自動(dòng)重試
支持使用 admin show slow 語(yǔ)句來(lái)獲取慢查詢(xún)語(yǔ)句
增加環(huán)境變量 tidb_slow_log_threshold 動(dòng)態(tài)設(shè)置 slow log 的閾值
增加環(huán)境變量 tidb_query_log_max_len 動(dòng)態(tài)設(shè)置日志中被截?cái)嗟脑?SQL 語(yǔ)句的長(zhǎng)度
DDL支持 Add Index 語(yǔ)句與其他 DDL 語(yǔ)句并行執(zhí)行,避免耗時(shí)的 Add Index 操作阻塞其他操作
優(yōu)化 Add Index 的速度,在某些場(chǎng)景下速度大幅提升
支持 select tidb_is_ddl_owner() 語(yǔ)句,方便判斷 TiDB 是否為 DDL Owner
支持 ALTER TABLE FORCE 語(yǔ)法
支持 ALTER TABLE RENAME KEY TO 語(yǔ)法
Admin Show DDL Jobs 輸出結(jié)果中添加表名、庫(kù)名等信息
支持使用 ddl/owner/resign HTTP 接口釋放 DDL Owner 并開(kāi)啟新一輪 DDL Owner 選舉
兼容性支持更多 MySQL 語(yǔ)法
BIT 聚合函數(shù)支持 ALL 參數(shù)
支持 SHOW PRIVILEGES 語(yǔ)句
支持 LOAD DATA 語(yǔ)句的 CHARACTER SET 語(yǔ)法
支持 CREATE USER 語(yǔ)句的 IDENTIFIED WITH 語(yǔ)法
支持 LOAD DATA IGNORE LINES 語(yǔ)句
Show ProcessList 語(yǔ)句返回更準(zhǔn)確信息
PD 可用性?xún)?yōu)化引入 TiKV 版本控制機(jī)制,支持集群滾動(dòng)兼容升級(jí)
PD 節(jié)點(diǎn)間 開(kāi)啟 Raft PreVote,避免網(wǎng)絡(luò)隔離后恢復(fù)時(shí)產(chǎn)生的重新選舉
開(kāi)啟 raft learner 功能,降低調(diào)度時(shí)出現(xiàn)宕機(jī)導(dǎo)致數(shù)據(jù)不可用的風(fēng)險(xiǎn)
TSO 分配不再受系統(tǒng)時(shí)間回退影響
支持 Region merge 功能,減少元數(shù)據(jù)帶來(lái)的開(kāi)銷(xiāo)
調(diào)度器優(yōu)化優(yōu)化 Down Store 的處理流程,加快發(fā)生宕機(jī)后補(bǔ)副本的速度
優(yōu)化熱點(diǎn)調(diào)度器,在流量統(tǒng)計(jì)信息抖動(dòng)時(shí)適應(yīng)性更好
優(yōu)化 Coordinator 的啟動(dòng),減少重啟 PD 時(shí)帶來(lái)的不必要調(diào)度
優(yōu)化 Balance Scheduler 頻繁調(diào)度小 Region 的問(wèn)題
優(yōu)化 Region merge,調(diào)度時(shí)考慮 Region 中數(shù)據(jù)的行數(shù)
新增一些控制調(diào)度策略的開(kāi)關(guān)
完善調(diào)度模擬器,添加調(diào)度場(chǎng)景模擬
API 及運(yùn)維工具新增 GetPrevRegion 接口,用于支持 TiDB reverse scan 功能
新增 BatchSplitRegion 接口,用于支持 TiKV 快速 Region 分裂
新增 GCSafePoint 接口,用于支持 TiDB 并發(fā)分布式 GC
新增 GetAllStores 接口,用于支持 TiDB 并發(fā)分布式 GC
pd-ctl 新增:
使用統(tǒng)計(jì)信息進(jìn)行 Region split
調(diào)用 jq 來(lái)格式化 JSON 輸出
查詢(xún)指定 store 的 Region 信息
查詢(xún)按 version 排序的 topN 的 Region 列表
查詢(xún)按 size 排序的 topN 的 Region 列表
更精確的 TSO 解碼
pd-recover 不再需要提供 max-replica 參數(shù)
監(jiān)控增加 Filter 相關(guān)的監(jiān)控
新增 etcd Raft 狀態(tài)機(jī)相關(guān)監(jiān)控
性能優(yōu)化優(yōu)化處理 Region heartbeat 的性能,減少 heartbeat 帶來(lái)的內(nèi)存開(kāi)銷(xiāo)
優(yōu)化 Region tree 性能
優(yōu)化計(jì)算熱點(diǎn)統(tǒng)計(jì)的性能問(wèn)題
TiKV Coprocessor新增支持大量?jī)?nèi)建函數(shù)
新增 Coprocessor ReadPool,提高請(qǐng)求處理并發(fā)度
修復(fù)時(shí)間函數(shù)解析以及時(shí)區(qū)相關(guān)問(wèn)題
優(yōu)化下推聚合計(jì)算的內(nèi)存使用
Transaction優(yōu)化 MVCC 讀取邏輯以及內(nèi)存使用效率,提高掃描操作的性能,Count 全表性能比 2.0 版本提升 1 倍
折疊 MVCC 中連續(xù)的 Rollback 記錄,保證記錄的讀取性能
新增 UnsafeDestroyRange API 用于在 drop table/index 的情況下快速回收空間
GC 模塊獨(dú)立出來(lái),減少對(duì)正常寫(xiě)入的影響
kv_scan 命令支持設(shè)置 upper bound
Raftstore優(yōu)化 snapshot 文件寫(xiě)入流程避免導(dǎo)致 RocksDB stall
增加 LocalReader 線(xiàn)程專(zhuān)門(mén)處理讀請(qǐng)求,降低讀請(qǐng)求的延遲
支持 BatchSplit 避免大量寫(xiě)入導(dǎo)致產(chǎn)生特別大的 Region
支持按照統(tǒng)計(jì)信息進(jìn)行 Region Split,減少 IO 開(kāi)銷(xiāo)
支持按照 Key 的數(shù)量進(jìn)行 Region Split,提高索引掃描的并發(fā)度
優(yōu)化部分 Raft 消息處理流程,避免 Region Split 帶來(lái)不必要的延遲
啟用 PreVote 功能,減少網(wǎng)絡(luò)隔離對(duì)服務(wù)的影響
存儲(chǔ)引擎修復(fù) RocksDB CompactFiles 的 bug,可能影響 Lightning 導(dǎo)入的數(shù)據(jù)
升級(jí) RocksDB 到 v5.15,解決 snapshot 文件可能會(huì)被寫(xiě)壞的問(wèn)題
優(yōu)化 IngestExternalFile,避免 flush 卡住寫(xiě)入的問(wèn)題
tikv-ctl新增 ldb 命令,方便排查 RocksDB 相關(guān)問(wèn)題
compact 命令支持指定是否 compact bottommost 層的數(shù)據(jù)
Tools全量數(shù)據(jù)快速導(dǎo)入工具 TiDB-Lightning
支持新版本 TiDB-Binlog
升級(jí)兼容性說(shuō)明由于新版本存儲(chǔ)引擎更新,不支持在升級(jí)后回退至 2.0.x 或更舊版本
新版本默認(rèn)開(kāi)啟 raft learner 功能,如果從 1.x 版本集群升級(jí)至 2.1 版本,須停機(jī)升級(jí)或者先滾動(dòng)升級(jí) TiKV,完成后再滾動(dòng)升級(jí) PD
從 2.0.6 之前的版本升級(jí)到 2.1.0 之前,最好確認(rèn)集群中是否存在正在運(yùn)行中的 DDL 操作,特別是耗時(shí)的 Add Index 操作
因?yàn)?2.1 版本啟用了并行 DDL,對(duì)于早于 2.0.1 版本的集群,無(wú)法滾動(dòng)升級(jí)到 2.1,可以選擇下面兩種方案:
停機(jī)升級(jí),直接從早于 2.0.1 的 TiDB 版本升級(jí)到 2.1
先滾動(dòng)升級(jí)到 2.0.1 或者之后的 2.0.x 版本,再滾動(dòng)升級(jí)到 2.1 版本
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/17837.html
摘要:年月日,發(fā)布版,對(duì)應(yīng)的。相比版本,該版本對(duì)系統(tǒng)穩(wěn)定性?xún)?yōu)化器統(tǒng)計(jì)信息以及執(zhí)行引擎做了很多改進(jìn)。新特性支持支持支持支持優(yōu)化器重新支持聚合消除的優(yōu)化規(guī)則優(yōu)化子查詢(xún),將其轉(zhuǎn)化為添加變量以支持新的優(yōu)化器。 2019 年 1 月 19 日,TiDB 發(fā)布 3.0 Beta 版,對(duì)應(yīng) master branch 的 TiDB-Ansible。相比 2.1 版本,該版本對(duì)系統(tǒng)穩(wěn)定性、優(yōu)化器、統(tǒng)計(jì)信息以...
閱讀 2706·2021-11-18 10:02
閱讀 3470·2021-09-22 15:50
閱讀 2390·2021-09-06 15:02
閱讀 3607·2019-08-29 16:34
閱讀 1771·2019-08-29 13:49
閱讀 1309·2019-08-29 13:29
閱讀 3682·2019-08-28 18:08
閱讀 3008·2019-08-26 11:52