- 关于 TiDB
- 快速上手
- 部署集群
- 数据迁移
- 概述
- 从 MySQL 迁移至 TiDB
- 从 CSV 文件迁移至 TiDB
- 从 SQL 文件迁移到 TiDB
- 运维操作
- 升级 TiDB 版本
- 扩缩容
- 备份与恢复
- 读取历史数据
- 修改时区
- 日常巡检
- TiFlash 常用运维操作
- TiUP 常用运维操作
- 在线修改集群配置
- 监控与告警
- 故障诊断
- 性能调优
- 系统调优
- 软件调优
- SQL 性能调优
- SQL 性能调优概览
- 理解 TiDB 执行计划
- SQL 优化流程
- 控制执行计划
- 教程
- TiDB 生态工具
- 参考指南
- 架构
- 监控指标
- 安全加固
- 权限
- 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
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
- 命令行参数
- 配置文件参数
- 系统变量
- 存储引擎
- TiKV
- TiFlash
- TiUP
- 遥测
- 错误码
- 通过拓扑 label 进行副本调度
- 常见问题解答 (FAQ)
- 术语表
- 版本发布历史
TiDB 3.0.0-rc.1 Release Notes
发版日期:2019 年 5 月 10 日
TiDB 版本:3.0.0-rc.1
TiDB Ansible 版本:3.0.0-rc.1
Overview
2019 年 5 月 10 日,TiDB 发布 3.0.0-rc.1 版,对应的 TiDB Ansible 版本为 3.0.0-rc.1。相比 3.0.0-beta.1 版本,该版本对系统稳定性、易用性、功能、优化器、统计信息以及执行引擎做了很多改进。
TiDB
SQL 优化器
- 利用列之间的顺序相关性提升代价估算准确度,并提供启发式参数
tidb_opt_correlation_exp_factor
用于控制在相关性无法被直接用于估算的场景下对索引扫描的偏好程度。#9839 - 当过滤条件中包含相关列时,在抽取复合索引的访问条件时尽可能多地匹配索引的前缀列。#10053
- 用动态规划决定连接的执行顺序,当参与连接的表数量不多于
tidb_opt_join_reorder_threshold
时启用。#8816 - 在构造 Index Join 的的内表中,以复合索引作为访问条件时,尽可能多地匹配索引的前缀列。#8471
- 提升对单列索引上值为 NULL 的行数估算准确度。#9474
- 在逻辑优化阶段消除聚合函数时特殊处理
GROUP_CONCAT
,防止产生错误的执行结果。#9967 - 当过滤条件为常量时,正确地将它下推到连接算子的子节点上。#9848
- 在逻辑优化阶段列剪裁时特殊处理一些函数,例如
RAND()
,防止产生和 MySQL 不兼容的执行结果。#10064 - 支持
FAST ANALYZE
,通过tidb_enable_fast_analyze
变量控制。该特性通过用对 Region 进行采样取代扫描整个 region 的方式加速统计信息收集。#10258 - 支持
SQL PLAN MANAGEMENT
。该特性通过对 SQL 进行执行计划绑定,以确保执行稳定性。该特性目前处于测试阶段,仅支持对 SELECT 语句使用绑定的执行计划,不建议在生产场景中直接使用。#10284
- 利用列之间的顺序相关性提升代价估算准确度,并提供启发式参数
执行引擎
Server
DDL
- 为 CREATE TABLE 添加了 pre_split_regions 选项,该选项可以在建表时预先分配 Table Region,避免建表后大量写入造成的写热点 #10138
- 优化了部分 DDL 语句的执行性能 #10170
- FULLTEXT KEY 新增不支持全文索引的 warning #9821
- 修正了旧版本 TiDB 中,UTF8 和 UTF8MB4 编码的兼容性问题 #9820
- 修正了一个表的 shard_row_id_bits 的潜在 BUG #9868
- 修正了 ALTER TABLE Charset 后,Column Charset 不会跟随变化的 BUG #9790
- 修正了使用 BINARY/BIT 作为 Column Default Value 时,SHOW COLUMN 可能出错的 BUG #9897
- 修正了 SHOW FULL COLUMNS 语句中,CHARSET / COLLATION 显示的兼容性问题 #10007
- 现在 SHOW COLLATIONS 语句只会列出 TiDB 所实际支持的 COLLATIONS #10186
PD
- 升级 ETCD 版本 #1452
- 统一 etcd 的日志格式与 pd server 一致
- 修复 prevote 可能无法选出 Leader 的问题
- 快速 drop 掉会失败的 propose 和 read 请求,减少阻塞后面的请求时间
- 修复 Lease 的死锁问题
- 修复 store 读热点的 keys 统计不正确问题 #1487
- 支持从单一 PD 节点强制重建 PD 集群 #1485
- 修复 Scatter Region 产生无效 Operator Step 的问题 #1482
- 修复 Region Merge Operator 超时时间过短的问题 #1495
- 热点调度使用高优先级 #1492
- 添加 PD server 端处理 TSO 请求的耗时 Metrics #1502
- 添加相对应的 Store ID 和 Address 到 store 相关的 Metrics #1506
- 支持 GetOperator 服务 #1477
- 修复 Heartbeat stream 下发送 error 找不到 store 的问题 #1521
TiKV
- Engine
- Server
- RaftStore
- 可配置化
properties index distance
#4517
- 可配置化
- Coprocessor
- 新增 batch index scan executor #4419
- 新增向量化 evaluation 框架 #4322
- 新增 batch 执行器统计框架 #4433
- 构建 RPN expression 时检查 max column 以防止 evaluation 阶段 column offset 越界的问题 #4481
- 实现
BatchLimitExecutor
#4469 - ReadPool 使用
tokio-threadpool
替换原本的futures-cpupool
,减少 context switch #4486 - 新增 batch 聚合框架 #4533
- 新增
BatchSelectionExecutor
#4562 - 实现 batch aggression function
AVG
#4570 - 实现 RPN function
LogicalAnd
#4575
- Misc
- 支持选用 tcmalloc 为内存分配器 #4370
Tools
- TiDB Binlog
- Lightning
- 使用 row id 或者列的默认值填充 dump 文件中缺少的 column 数据 #170
- Importer 修复部分 SST 导入失败依然返回导入成功的 bug #4566
- Importer 支持 upload SST 到 TiKV 限速 #4412
- Lightning 优化导入表的顺序,按照表的数据大小顺序进行导入,减少导入过程中大表执行 checksum 和 Analyze 对集群的影响,并且提高 Checksum 和 Analyze 的成功率 #156
- 提升 Lightning encode SQL 性能,性能提升 50%,直接解析数据源文件内容成 TiDB 的 types.Datum,省去 KV encoder 的多余解析工作 #145
- 日志格式改为 Unified Log Format #162
- 新增一些命令行选项,即使缺少配置文件也能使用。#157
- 数据同步对比工具 (sync-diff-inspector)
TiDB Ansible
- TiKV 监控变更以及更新 Ansible、Grafana、Prometheus 版本 #727
- summary 监控适用于用户查看集群状态
- trouble_shooting 监控适用于 DBA 排查问题
- details 监控适用于开发分析问题
- 修复下载 Kafka 版本 Binlog 失败的 BUG #730
- 修改操作系统版本限制,仅支持 CentOS 7.0 及以上,Red Hat 7.0 及以上版本的操作系统 #733
- 滚动升级时的版本检测改为多并发 #736
- 更新 README 中文档链接#740
- 移除重复的 TiKV 监控项,新增 trouble shooting 监控项 #735
- 优化
table-regions.py
脚本,按表显示 leader 分布 #739 - 更新 drainer 配置文件 #745
- 优化 TiDB 监控,新增以 SQL 类别显示延迟的监控项 #747
- 更新 Lightning 配置文件,新增 tidb_lightning_ctl 脚本 #1e946f8