- 关于 TiDB
- 主要概念
- 操作指南
- 快速上手
- 部署
- 配置
- 安全
- 安全传输层协议 (TLS)
- 生成自签名证书
- 监控
- 迁移
- 运维
- 扩容缩容
- 升级
- 故障诊断
- 参考手册
- SQL
- 与 MySQL 兼容性对比
- SQL 语言结构
- 数据类型
- 函数与操作符
- SQL 语句
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ALTER DATABASE
ALTER TABLE
ALTER USER
ANALYZE TABLE
BEGIN
CHANGE COLUMN
COMMIT
CREATE DATABASE
CREATE INDEX
CREATE ROLE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP ROLE
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW ANALYZE STATUS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEXES [FROM|IN]
SHOW INDEX [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW SCHEMAS
SHOW STATUS
SHOW [FULL] TABLES
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SPLIT REGION
START TRANSACTION
TRACE
TRUNCATE
UPDATE
USE
- 约束
- 生成列
- 分区表
- 字符集
- SQL 模式
- 视图
- 配置
- tidb-server
- pd-server
- tikv-server
- 安全
- 事务
- 系统数据库
- 错误码
- 支持的连接器和 API
- 垃圾回收 (GC)
- 性能调优
- 监控指标
- 报警规则
- 最佳实践
- TiSpark 使用指南
- TiKV
- TiDB Binlog
- 工具
- TiDB in Kubernetes
- 常见问题 (FAQ)
- 技术支持
- 贡献
- 版本发布历史
- 发布版本汇总
- v3.0
- v2.1
- v2.0
- v1.0
- 术语表
重要
你正在查看 TiDB 数据库的较旧版本 (TiDB v3.0) 的文档。
如无特殊需求,建议使用 TiDB 数据库的最新 LTS 版本。
TiDB 2.1.17 Release Notes
发版日期:2019 年 9 月 11 日
TiDB 版本:2.1.17
TiDB Ansible 版本:2.1.17
新特性
- TiDB 的
SHOW TABLE REGIONS
语法新增WHERE
条件子句 - TiKV、PD 新增
config-check
功能,用于配置项检查 - pd-ctl 新增
remove-tombstone
命令,支持清理 tombstone store 记录 - Reparo 新增
worker-count
和txn-batch
配置项,用于控制恢复速率
- TiDB 的
改进提升
- PD 优化调度流程,支持主动下发调度
- TiKV 优化启动流程,减少重启节点带来的抖动
行为变更
- TiDB 慢日志中的
start ts
由最后一次重试的时间改为第一次执行的时间 - TiDB 慢日志中的
Index_ids
字段替换为Index_names
字段,提升慢日志易用性 - TiDB 配置文件中添加
split-region-max-num
参数,用于调整SPLIT TABLE
语法允许的最大 Region 数量,默认配置下,允许的数量由 1,000 增加至 10,000
- TiDB 慢日志中的
TiDB
- SQL 优化器
- SQL 执行引擎
- 修复
CAST
函数在进行数值类型转换时,首先将数值转换为UINT
导致一些结果不正确的问题(例如,select cast(13835058000000000000 as double)
)#11712 - 修复
DIV
运算的被除数为DECIMAL
类型且运算含有负数时,运算结果可能不正确的问题 #11812 - 添加
ConvertStrToIntStrict
函数,修复执行SELECT
/EXPLAIN
语句时,一些字符串转换INT
类型结果与 MySQL 不兼容的问题 #11892 - 修复使用
EXPLAIN ... FOR CONNECTION
语法时,stmtCtx
没有正确设置导致Explain
结果可能不正确的问题 #11978 - 修复
unaryMinus
函数,当 Int 结果溢出时,返回结果类型没有为 Decimal 导致与 MySQL 不兼容的问题 #11990 - 修复
LOAD DATA
语句执行时,计数顺序导致的last_insert_id()
可能不正确的问题 #11994 - 修复用户显式、隐式混合写入自增列数据时,
last_insert_id()
可能不正确的问题 #12001 - 修复一个
JSON_UNQUOTE
函数兼容性问题:只有在双引号("
)内的值需要 Unquote,例如SELECT JSON_UNQUOTE("\\\\")
应当为 "\\
"(不进行 Unquote)#12096
- 修复
- Server
- TiDB 事务重试时,记录在慢日志中的
start ts
由最后一次重试的时间改为第一次执行的时间 #11878 - 在
LockResolver
中添加事务的 Key 数量:当 Key 数量较少时,可以避免对整个 Region 的 Scan 操作,减小清锁的代价 #11889 - 修复慢日志中,
succ
字段值可能不正确的问题 #11886 - 将慢日志中的
Index_ids
字段替换为Index_names
字段,提升慢日志易用性 #12063 - 修复
Duration
内容中包含-
时(例如select time(‘--’)
),TiDB 解析为 EOF Error 导致连接断开的错误 #11910 - 改进
RegionCache
:当一个 Region 失效时,它将会更快地从RegionCache
中移除,减少向该 Region 发送请求的个数 #11931 - 修复
oom-action = "cancel"
时,当Insert Into … Select
语句发生 OOM,OOM Panic 没有被正确处理而导致连接断开的问题 #12126
- TiDB 事务重试时,记录在慢日志中的
- DDL
- 为
tikvSnapshot
添加逆序扫描接口用于高效地查询 DDL History Job,使用该接口后ADMIN SHOW DDL JOBS
的执行时间有明显降低 #11789 - 改进
CREATE TABLE ... PRE_SPLIT_REGION
的语义:当指定PRE_SPLIT_REGION = N
时,将预切分的 Region 个数由 2^(N-1) 改为 2^N #11797 - 根据线上负载与 Add Index 相互影响测试,调小 Add Index 后台工作线程的默认参数以避免对线上负载造成较大影响 #11875
- 改进
SPLIT TABLE
语法的行为:当使用SPLIT TABLE ... REGIONS N
对 Region 切分时,会生成 N 个数据 Region 和 1 个索引 Region #11929 - 在配置文件中添加
split-region-max-num
参数,使得SPLIT TABLE
语法允许的最大 Region 数量可调整,该参数默认值10000
#12080 - 修复写 binlog 时,
CREATE TABLE
语句中PRE_SPLIT_REGIONS
部分没有被注释,导致语句不能被下游 MySQL 解析的问题 #12121 SHOW TABLE … REGIONS
和SHOW TABLE .. INDEX … REGIONS
语法新增WHERE
条件子句 #12124
- 为
- Monitor
- 增加监控指标
connection_transient_failure_count
,用于统计tikvclient
的 gRPC 连接错误数量 #12092
- 增加监控指标
TiKV
- 解决某些情况下 Region 内 key 个数统计不准的问题 #5415
- TiKV 新增
config-check
选项,用于检查 TiKV 配置项是否合法 #5391 - 优化启动流程,减少重启节点带来的抖动 #5277
- 优化某些情况下解锁的流程,加速事务解锁 #5339
- 优化
get_txn_commit_info
的流程,加速事务提交 #5062 - 简化 Raft 相关的 log #5425
- 解决在某些情况下 TiKV 异常退出的问题 #5441
PD
- PD 新增
config-check
选项,用于检查 PD 配置项是否合法 #1725 - pd-ctl 新增
remove-tombstone
命令,支持清理 tombstone store 记录 #1705 - 支持主动下发 Operator,加快调度速度 #1686
Tools
TiDB Binlog
TiDB Lightning
- 修复从 checkpoint 点重新导入可能会导致 tidb-lightning 崩溃的 bug #239
TiDB Ansible
文档内容是否有帮助?