- 文档中心
- 关于 TiDB
- 快速上手
- 部署标准集群
- 数据迁移
- 运维操作
- 监控与告警
- 故障诊断
- 性能调优
- 系统调优
- 软件调优
- SQL 性能调优
- SQL 性能调优概览
- 理解 TiDB 执行计划
- SQL 优化流程
- 控制执行计划
- 教程
- TiDB 工具
- 功能概览
- 适用场景
- 工具下载
- TiUP
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDB Data Migration
- Backup & Restore (BR)
- TiDB Binlog
- TiCDC
- TiUniManager
- 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]
ALTER DATABASE
ALTER INDEX
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
RENAME USER
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
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- 数据类型
- 函数与操作符
- 聚簇索引
- 约束
- 生成列
- SQL 模式
- 事务
- 垃圾回收 (GC)
- 视图
- 分区表
- 字符集和排序规则
- 系统表
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
PROCESSLIST
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
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)
- 版本发布历史
- 发布版本汇总
- v5.1
- v5.0
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- 术语表
TiDB 4.0 Beta Release Notes
发版日期:2020 年 1 月 17 日
TiDB 版本:4.0.0-beta
TiDB Ansible 版本:4.0.0-beta
TiDB
- 当
Insert
/Replace
/Delete
/Update
在执行过程中所使用的内存空间超过启动配置项MemQuotaQuery
的限制时,输出日志或取消本次执行过程,具体行为取决于启动配置项OOMAction
#14179 #14289 #14299 - 估算
Index Join
的代价时由仅考虑驱动表的行数调整为考虑驱动表和被驱动表的行数,提升估算的准确性 #12085 - 新增 15 个 SQL hint,用于控制优化器行为,提升优化器稳定性
- 提升查询中所涉及到的列能被索引全覆盖时的性能 #12022
- 对表上的
OR
表达式过滤条件,使用多个索引组合进行表访问,提升查询性能 #10121 #10512 #11245 #12225 #12248 #12305 #12843 - 优化 Range 计算流程,缓存并去重索引计算的结果,减少 CPU 开销,提升 range 计算的性能 #12856
- Slow Log 日志的级别与普通日志的级别解耦 #12359
- 新增
oom-use-tmp-storage
参数,默认值为true
,用于控制当单条 SQL 执行过程中占用内存使用超过mem-quota-query
且 SQL 中包含Hash Join
时,系统会采用临时文件来缓存中间结果 #11832 #11937 #12116 #12067 - 支持使用
create index
/alter table add index
语句创建表达式索引,使用drop index
语句删除表达式索引 #14117 query-log-max-len
参数默认值调大为4096
,减少输出被截断 SQL 的数量,此参数可通过 SQL 动态调整 #12491- 支持在列属性上添加
AutoRandom
关键字,用于控制系统自动为主键分配随机整数,避免AutoIncrement
自增主键带来的写入热点问题 #13127 - 支持表级锁 (Table Locks) #11038
ADMIN SHOW DDL JOBS
支持LIKE
或WHERE
语法进行条件过滤 #12484information_schema.tables
表新增TIDB_ROW_ID_SHARDING_INFO
列,输出列的 RowID 打散相关的信息(例如:表A
指定SHARD_ROW_ID_BITS
,该列的值为"SHARD_BITS={bit_number}"
)#13418- 优化 SQL 错误信息的错误码,避免出现多个错误信息的错误码都是
ERROR 1105 (HY000)
(即类型为Unknown Error
)的情况 - 在估算行数时将离散类型的很窄的 range 转化为
point set
然后用 CM-Sketch 提升估算精度 #11524 - 支持普通
Analyze
得到的 CM-Sketch 维护TopN
信息,将出现次数较多的值单独维护 #11409 - 支持动态调整 CM-Sketch 长宽和
TopN
数目 #11278 - 新增 SQL Binding 的自动捕获和自动演进功能 #13199 #12434
- 优化与 TiKV 之间通信息编码格式,采用
Chunk
格式编码,提升网络通信性能 #12023 #12536 #12613 #12621 #12899 #13060 #13349 - 支持新的行存储格式,提升宽表性能 #12634
- 优化
Recover Binlog
接口,确保等待当前正在提交的事务都提交完成再返回 #13740 - 新增通过 HTTP
info/all
接口,查询集群中所有 TiDB server 开启 binlog 的状态 #13025 - 新增在事务模式是悲观事务时,支持使用 MySQL 兼容的 Read Committed 事务隔离级别 #14087
- 支持超大事务,事务大小的限制受限于物理内存大小
- 提升
Kill
稳定性 #10841 LOAD DATA
支持十六进制和二进制表达式作为分隔符 #11029IndexLookupJoin
拆分为IndexHashJoin
与IndexMergeJoin
,提升IndexLookupJoin
的执行性能,减少执行过程中的内存消耗 #8861 #12139 #12349 #13238 #13451 #13714- 修复 RBAC 若干问题 #13896 #13820 #13940 #14090 #13940 #13014
- 修复创建视图时,由于
select
语句包含union
视图无法创建成功的问题 #12595 - 修复
CAST
函数若干问题 - Slow log 输出 TiKV RPC 的
backoff
具体信息,方便排查问题 #13770 - 优化统一 expensive log 中内存统计信息的格式 #12809
- 优化
explain
显式格式,支持输出算子占用内存和磁盘的信息 #13914 #13692 #13686 #11415 #13927 #13764 #13720 - 优化
LOAD DATA
重复值检查,按照事务粒度进行且事务大小可通过tidb_dml_batch_size
配置 #11132 - 优化
LOAD DATA
性能,将数据读取处理和批量提交分离,且分派到不同的 Worker 处理 #11533 #11284
TiKV
- 升级 RocksDB 的版本到 6.4.6
- 系统启动时自动创建 2GB 大小的空文件,解决磁盘空间被写满时系统无法正常进行 Compaction 的问题 #6321
- 新增快速备份恢复功能
- 新增从 Follower 副本读取数据的功能
- 提升 TiDB 通过索引读取数据的性能 #5682
- 修复
CAST
函数在 TiDB 和 TiKV 中行为不一致性的问题
PD
- 新增根据存储节点负载信息优化热点调度的功能
- 新增 Placement Rules 功能,通过组合不同的调度规则,精细控制任意一段数据的副本的数量、存放位置、存储主机类型、角色等信息
- 支持插件功能 (experimental) #1799
- 新增调度器支持自定义配置功能,支持配置调度器的作用范围 (experimental) #1735 #1783 #1791
- 新增根据集群负载信息自动调整调度速度的功能(experimental,默认不打开)#1875 #1887 #1902
Tools
- TiDB Lightning
- 命令行增加配置下游数据库密码的参数 #253
TiDB Ansible
文档内容是否有帮助?