2019 年 6 月 28 日,TiDB 发布 3.0 GA 版本,对应的 TiDB Ansible 版本为 3.0.0。 相比于 V2.1,V3.0.0 版本在以下方面有重要改进:
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
函数SQL Plan Management
功能,通过绑定 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 时系统的行为,使其自动加载统计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 缓解热点问题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)(实验特性)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
语法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
功能Iterator Key Bound Option
的内存分配和拷贝,提升性能batch commands
的上下文切换开销,提升性能EXPLAIN ANALYZE
语句提供算子执行详情TiKV-Importer
导入数据性能TiKV-Importer
支持对 upload SST 到 TiKV 限速功能advertise-addr
配置,支持容器环境中使用桥接模式table-regions.py
脚本,新增按表显示 leader 分布功能