- 关于 TiDB
- 快速上手
- 部署集群
- 数据迁移
- 运维操作
- 监控与告警
- 故障诊断
- 性能调优
- 系统调优
- 软件调优
- SQL 性能调优
- SQL 性能调优概览
- 理解 TiDB 执行计划
- SQL 优化流程
- 控制执行计划
- 教程
- TiDB 工具
- 功能概览
- 适用场景
- 工具下载
- TiUP
- TiDB Operator
- Backup & Restore (BR)
- TiDB Binlog
- TiDB Lightning
- TiDB Data Migration
- TiCDC
- Dumpling
- sync-diff-inspector
- Loader
- Mydumper
- Syncer
- TiSpark
- 参考指南
- 架构
- 监控指标
- 安全加固
- 权限
- SQL
- 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 INSTANCE
ALTER TABLE
ALTER USER
ANALYZE TABLE
BACKUP
BEGIN
CHANGE COLUMN
CHANGE DRAINER
CHANGE PUMP
COMMIT
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
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 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 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 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
TRACE
TRUNCATE
UPDATE
USE
- 数据类型
- 函数与操作符
- 约束
- 生成列
- SQL 模式
- 事务
- 垃圾回收 (GC)
- 视图
- 分区表
- 字符集和排序规则
- 系统表
mysql
- INFORMATION_SCHEMA
- Overview
ANALYZE_STATUS
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DDL_JOBS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PROCESSLIST
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_INDEXES
TIDB_SERVERS_INFO
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- CLI
- 命令行参数
- 配置文件参数
- 系统变量
- 存储引擎
- 遥测
- 错误码
- 通过拓扑 label 进行副本调度
- 常见问题解答 (FAQ)
- 版本发布历史
- 发布版本汇总
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- 术语表
TiDB 4.0 RC.2 Release Notes
发版日期:2020 年 5 月 15 日
TiDB 版本:4.0.0-rc.2
兼容性变化
TiDB
TiKV
- 将加密相关的配置移到 security 分类下,即调整配置项
[encryption]
为[security.encryption]
#7810
- 将加密相关的配置移到 security 分类下,即调整配置项
Tools
重点修复的 Bug
TiDB
- 修复当
WHERE
语句只有一个等值条件时错误选择分区表分区的问题 #17054 - 修复当
WHERE
语句只包含字符串列时构造错误的 Index Range 导致结果错误的问题 #16660 - 修复事务中执行
DELETE
之后再进行唯一索引点查语句 Panic 的问题 #16991 - 修复 GC worker 在有错误发生时可能死锁的问题 #16915
- 避免 TiKV 未宕机仅响应慢情况下的无故 RegionMiss 重试 #16956
- 修改客户端 MySQL 协议握手阶段日志级别为
DEBUG
,以解决干扰日志输出的问题 #16881 - 修复
TRUNCATE
后未按照表定义的PRE_SPLIT_REGIONS
信息进行预切分 Region 的问题 #16776 - 修复两阶段提交中第二阶段遇到 TiKV 不可用重试导致的 Goroutine 暴涨的问题 #16876
- 修复部分表达式不能下推可能导致语句执行 Panic 的问题 #16869
- 修复 IndexMerge 在分区表上执行结果错误的问题 #17124
- 修复因 Memory Tracker 锁竞争引起的宽表性能回退问题 #17234
- 修复当
TiFlash
- 修复库名、表名含特殊字符,系统升级后无法正常启动的问题
新功能
TiDB
- 新增
BACKUP
和RESTORE
语句进行备份与恢复 #16960 - 支持在提交前预检查单个 Region 提交数据量,并在超过阈值时预切分 Region 后再进行提交 #16959
- 新增 Session 作用域变量
LAST_PLAN_FROM_CACHE
,用于指示上一条语句是否命中 Plan Cache #16830 - 支持在慢日志和
SLOW_LOG
表中记录Cop_time
信息 #16904 - 支持在 Grafana 中展示更多 Go Runtime 内存监控指标 #16928
- 支持在 General Log 中输出
forUpdateTS
和Read Consistency
隔离级别信息 #16946 - 支持对 TiKV Region Resolve Lock 请求进行去重 #16925
- 支持
SET CONFIG
语句进行 PD/TiKV 节点配置修改 #16853 - 支持在
CREATE TABLE
语句中指定auto_random
选项 #16813 - 通过为 DistSQL 请求分配 TaskID 让 TiKV 更好地调度处理请求 #17155
- 支持在 MySQL 客户端登录后显示 TiDB server 版本信息 #17187
- 支持在
GROUP_CONCAT
中指定ORDER BY
子句 #16990 - 支持在 Slow Log 中展示
Plan_from_cache
信息,用于指示语句是否命中 Plan Cache #17121 - Dashboard 支持显示 TiFlash 多盘部署容量信息功能
- Dashboard 支持通过 SQL 查询 TiFlash 日志的功能
- 新增
TiKV
- 加密存储适配 tikv-ctl,适配后开启加密存储后通过 tikv-ctl 操作管理集群 #7698
- 新增加密码 Snapshot 中的
lock column famliy
的功能 #7712 - 修改 Raftstore latency 在 Grafana 面板显示方式,采用 heatmap 方便诊断性能抖动问题 #7717
- 支持配置 gRPC 消息大小的上限 #7824
- Grafana 面板中添加了 encryption 相关的监控 #7827
- TiKV 支持 ALPN 协议 #7825
- 添加了更多的关于 Titan 的统计信息 #7818
- 统一线程池支持用客户端提供的 task ID 来区分任务,以避免一个请求被来自同一个事务的另一个请求降低优先级 #7814
- 提升了 batch insert 请求的性能 #7718
PD
- 下线节点时放开 Remove peer 的速度 #2372
TiFlash
- 调整 Grafana 中 Read Index 的 Count 图表的名称为 Ops
- 优化系统负载较低时打开文件描述符的数据,降低系统资源占用量
- 新增 capacity 配置参数用于限制存储数据容量
Tools
Bug 修复
TiDB
- 完善多个算子中判断是否使用向量化进行表达式执行的逻辑 #16383
- 修复 IndexMerge Hint 未能正确检查数据库名称的问题 #16932
- 修复 Sequence 可以被
TRUNCATE
的问题 #17037 - 修复 Sequence 可以被
INSERT
/UPDATE
/ANALYZE
/DELETE
的问题 #16957 - 修复启动阶段执行的内部 SQL 在 Statement Summary 表中未能正确记录为内部 SQL 的问题 #17062
- 修复因 TiFlash 支持但 TiKV 不支持的过滤条件仅被下推到 IndexLookupJoin 算子之下导致的语句报错问题 #17036
- 修复开启 Collation 后,
LIKE
表达式可能出现的并发问题 #16997 - 修复开启 Collation 后,
LIKE
函数无法正确构造 Range 查询索引的问题 #16783 - 修复触发填充 Plan Cache 语句后执行
@@LAST_PLAN_FROM_CACHE
返回值错误的问题 #16831 - 修复为 IndexMerge 计算候选路径时漏掉 Index 上的
TableFilter
的问题 #16947 - 修复使用 MergeJoin Hint 并存在 TableDual 算子时无法产生物理查询计划的问题 #17016
- 修复 Statement Summary 表的
Stmt_Type
列值大小写错误的问题 #17018 - 修复因不同用户使用相同的 tmp-storage-path 导致服务无法启动报
Permission Denied
错误问题 #16996 - 修复返回结果类型由多个输入列决定的表达式(例如:
CASE WHEN
)结果类型NotNullFlag
标识推导不正确的问题 #16995 - 修复 Green GC 在有 Dirty Store 的情况下可能遗留锁的问题 #16949
- 修复 Green GC 在遇到单个 key 有多个不同锁的情况下会遗留下锁的问题 #16948
- 修复
INSERT VALUE
中子查询引用父查询列导致插入值错误的问题 #16952 - 修复对 Float 值进行
AND
操作结果不正的问题 #16666 - 修复 Expensive Log 日志中
WAIT_TIME
字段信息错误的问题 #16907 - 修复悲观事务模式执行语句
SELECT FOR UPDATE
不能被记录到 Slow Log 的问题 #16897 - 修复在
Enum
或Set
类型列上执行SELECT DISTINCT
时结果错误的问题 #16892 - 修复
auto_random_base
在SHOW CREATE TABLE
的显示问题 #16864 - 修复
WHERE string_value
结果不正确的问题 #16559 - 修复
GROUP BY
Window Function 错误消息和 MySQL 不一致问题 #16165 - 修复
FLASH TABLE
语句在数据库名有大写字母时执行失败的问题 #17167 - 修复 Projection 执行器内存消耗记录不准确的问题 #17118
- 修复
SLOW_QUERY
表在不同时区下时间过滤不正确的问题 #17164 - 修复 IndexMerge 和虚拟生成列一起使用时 Panic 的问题 #17126
- 修复
INSTR
和LOCATE
函数大小写问题 #17068 - 修复开启
tidb_allow_batch_cop
配置后频繁出现tikv server timeout
错误的问题 #17161 - 修复 Float 类型进行
XOR
操作结果和 MySQL 8.0 不一致的问题 #16978 - 修复
ALTER TABLE REORGANIZE PARTITION
不支持但执行未报错的问题 #17178 - 修复
EXPLAIN FORMAT="dot" FOR CONNECTION ID
可能遇到不支持展示的 Plan 发生报错的问题 #17160 - 修复 Prepared Statement 在 Statement Summary 表中
EXEC_COUNT
列的记录问题 #17086 - 修复设置 Statement Summary 系统变量时未检查值是否合法的问题 #17129
- 修复启用 Plan Cache 时使用越界值查询
UNSIGNED BIGINT
主键报错的问题 #17120 - 修复 Grafana TiDB Summary 面板基于机器实例和请求类型展示 QPS 不正确的问题 #17105
TiKV
- 修复 restore 后生成大量空 Region 的问题 #7632
- 修复 Raftstore 收到乱序 read index 响应时会引发 panic 的问题 #7370
- 修复启用统一线程池时,不会验证 storage 或
coprocessor read pool
配置是否无效的问题 #7513 - 修复 TiKV server 关闭时,join 可能 panic 的 问题 #7713
- 修复通过诊断 API 搜索慢日志无返回结果的问题 #7776
- 修复节点长时间运行时,系统会产生较多内存碎片的问题 #7556
- 修复部分情况下因存储无效日期导致 SQL 执行失败的问题 #7268
- 修复从 GCS 进行恢复数据不能正确运行的问题 #7739
- 修复存储加密时未进行 KMS Key Id 验证的问题 #7719
- 修复 Coprocessor 在不同架构编译器下潜在正确性问题 #7714 #7730
- 修复启用加密时出现
snapshot ingestion
错误的问题 #7815 - 修复当改写配置文件时发生
Invalid cross-device link
的问题 #7817 - 修复将配置文件写入到空文件中时会出现错误的 toml 格式的问题 #7817
- 修复 Raftstore 中已销毁的 Peer 仍然可能处理请求的问题 #7836
PD
TiFlash
- 修复部分场景错误上报已使用空间信息的问题
Tools
TiDB Binlog
TiCDC
Backup & Restore (BR)
- 修复 BR 恢复带有
auto_random
属性的表之后,插入数据有一定概率触发 duplicate entry 错误的问题 #241
- 修复 BR 恢复带有
文档内容是否有帮助?