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 变为 utf8mb4alter 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 分布功能官网链接:https://www.pingcap.com/index.html
