- 关于 TiDB
- 快速上手
- 部署标准集群
- 数据迁移
- 运维操作
- 监控与告警
- 故障诊断
- 性能调优
- 系统调优
- 软件调优
- SQL 性能调优
- SQL 性能调优概览
- 理解 TiDB 执行计划
- SQL 优化流程
- 控制执行计划
- 教程
- 同城多中心部署
- 两地三中心部署
- 同城两中心部署
- 读取历史数据
- 使用 Stale Read 功能读取历史数据(推荐)
- 使用系统变量
tidb_snapshot
读取历史数据
- 最佳实践
- Placement Rules 使用文档
- Load Base Split 使用文档
- Store Limit 使用文档
- TiDB 工具
- 功能概览
- 适用场景
- 工具下载
- TiUP
- 文档地图
- 概览
- 术语及核心概念
- TiUP 组件管理
- FAQ
- 故障排查
- TiUP 命令参考手册
- 命令概览
- TiUP 命令
- TiUP Cluster 命令
- TiUP Cluster 命令概览
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUP DM 命令
- TiUP DM 命令概览
- tiup dm audit
- tiup dm deploy
- tiup dm destroy
- tiup dm disable
- tiup dm display
- tiup dm edit-config
- tiup dm enable
- tiup dm help
- tiup dm import
- tiup dm list
- tiup dm patch
- tiup dm prune
- tiup dm reload
- tiup dm replay
- tiup dm restart
- tiup dm scale-in
- tiup dm scale-out
- tiup dm start
- tiup dm stop
- tiup dm template
- tiup dm upgrade
- TiDB 集群拓扑文件配置
- DM 集群拓扑文件配置
- TiUP 镜像参考指南
- TiUP 组件文档
- PingCAP Clinic 诊断服务 (Technical Preview)
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDB Data Migration
- 关于 Data Migration
- 快速开始
- 部署 DM 集群
- 入门指南
- 进阶教程
- 运维管理
- 参考手册
- 使用示例
- 异常解决
- 版本发布历史
- Backup & Restore (BR)
- TiDB Binlog
- TiCDC
- sync-diff-inspector
- TiSpark
- 参考指南
- 架构
- 监控指标
- 安全加固
- 权限
- SQL
- SQL 语言结构和语法
- SQL 语句
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER USER
ANALYZE TABLE
BACKUP
BEGIN
CHANGE COLUMN
CHANGE DRAINER
CHANGE PUMP
COMMIT
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
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
RESTORE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW [BACKUPS|RESTORES]
SHOW ANALYZE STATUS
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- 数据类型
- 函数与操作符
- 聚簇索引
- 约束
- 生成列
- SQL 模式
- 表属性
- 事务
- 垃圾回收 (GC)
- 视图
- 分区表
- 临时表
- 缓存表
- 字符集和排序
- Placement Rules in SQL
- 系统表
mysql
- INFORMATION_SCHEMA
- Overview
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_POLICIES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- CLI
- 命令行参数
- 配置文件参数
- 系统变量
- 存储引擎
- 遥测
- 错误码
- 通过拓扑 label 进行副本调度
- 常见问题解答 (FAQ)
- 版本发布历史
- 术语表
重要
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
文档内容是否有帮助?