- 关于TiDB
- 快速开始
- 部署
- 迁移
- 维持
- 升级
- 规模
- 备份还原
- 使用BR工具(推荐)
- 配置时区
- 每日清单
- 保持Tiflash.
- 使用TiUP维护TiDB
- 在线修改配置
- 监控和警报
- 排除故障
- 性能调整
- 教程
- TIDB生态系统工具
- 参考
- 集群架构
- 主要监控指标
- 安全的
- 特权
- SQL
- SQL语言结构和语法
- SQL陈述
添加列
添加索引
管理
管理员取消DDL.
管理校验和表
管理员检查[表|索引]
Admin show DDL [job | queries]
改变数据库
改变指数
更改实例
ALTER TABLE
改变用户
分析表
备份
开始
更改专栏
犯罪
换流器
改变泵
创建[全局|会话]绑定
创建数据库
创建索引
创建角色
创建序列
创建表
创建表
创建用户
创建视图
释放
删除
去世
描述
做
下降(全球|会话)绑定
丢弃栏
删除数据库
下降索引
下降角色
下拉序列
下降统计信息
下拉表
删除用户
掉落视图
执行
解释分析
解释
闪回表
齐平特权
冲洗状态
冲洗表
grant
格兰特> <作用
插入
杀死[tidb]
加载数据
加载统计数据
修改列
准备
恢复表格
重命名索引
重命名表
取代
恢复
撤消
撤消<角色>
回滚
选择
设置默认角色
设置[名称|字符集]
设置密码
设置角色
设置交易
<变量(全局|会话)>
显示分析状态
显示(备份|恢复)
显示(全球|会话)绑定
显示内置
显示字符集
展示融合
显示[完整]列
显示配置
显示创建序列
显示创建表
显示创建用户
显示数据库
显示排水机状态
显示引擎
显示错误
显示[完整]字段
秀奖助金
显示指数(从|)
显示索引(从|)
显示键[来自| In]
显示主状态
显示插件
显示特权
显示[完整] processslist
显示个人资料
显示泵状态
显示模式
显示stats_healthy.
显示STATS_HISTOGRAMS
show stats_meta.
显示状态
显示表NEXT_ROW_ID
展示桌子区
显示表状态
显示[全]表格
显示[全局|会话]变量
显示警告
关掉
分裂区域
开始交易
桌子
痕迹
截断
更新
使用
与
- 数据类型
- 功能和运营商
- 聚集索引
- 约束
- 生成的列
- SQL模式
- 交易
- 垃圾收集(GC)
- 意见
- 分区
- 字符集和整理
- 系统表
mysql.
- Information_Schema.
- 概述
ANALYZE_STATUS
client_errors_summary_by_host.
client_errors_summary_User.
client_errors_summary_global.
character_sets.
CLUSTER_CONFIG
cluster_hardware
CLUSTER_INFO
cluster_load.
cluster_log.
cluster_systeminfo.
整理
COLLATION_CHARACTER_SET_APPLICABILITY
列
data_lock_waits.
DDL_JOBS
死锁
引擎
INSPECTION_RESULT
检查_RULES.
检查_summary.
key_column_usage.
metrics_summary.
metrics_tables.
分区
流行列表
REFERENTIAL_CONSTRAINTS
架构
序列
session_variables.
慢_query.
统计数据
表
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.
意见
metrics_schema.
- 用户界面
- CLI.
- 命令行标志
- 配置文件参数
- 系统变量
- 存储引擎
- Tiup.
- 遥测
- 错误代码
- 表筛选器
- 按拓扑标签安排副本
- 常见问题
- 术语表
- 发行说明
- 所有的版本
- v5.2
- v5.1
- v5.0
- v4.0.
- v3.1
- v3.0
- v2.1.
- v2.0.
- v1.0
TIDB 5.2发行说明
上映日期:2021年8月27日
TIDB版本:5.2.0
在v5.2中,关键的新特性和改进如下:
- 支持使用若干函数在表达式索引中大大提高查询性能
- 提高优化器基数估计的准确性,以帮助选择最佳执行计划
- 宣布锁定视图功能的通用可用性(GA),以观察事务锁定事件并解决死锁问题
- 增加TiFlash io流量限制特性,提高TiFlash读写的稳定性
- TIKV推出了一种新的流量控制机制来取代以前的RockSDB写入失速机制,以提高TIKV流量控制的稳定性
- 简化数据迁移(DM)的操作和维护,以降低管理成本。
- TiCDC支持HTTP协议OpenAPI来管理TiCDC任务。它为Kubernetes和本地环境提供了更友好的操作方法。(实验特性)
兼容性变化
注意:
从早期TIDB版本升级到v5.2时,如果要知道所有中间版本的兼容性更改说明,则可以查看发行公告对应的版本号。
系统变量
变量名 | 改变类型 | 描述 |
---|---|---|
default_authentication_plugin |
新补充 | 设置服务器发布的认证方法。默认值为mysql_native_password . |
tidb_enable_auto_increment_in_generated |
新补充 | 确定是否包括自动递增 当创建生成的列或表达式索引时。默认值为从 . |
tidb_opt_enable_correlation_adjustment |
新补充 | 控制优化器是否估计基于列顺序相关的行数。默认值为在 . |
tidb_opt_limit_push_down_threshold |
新补充 | 设置阈值,该阈值决定是否将Limit或TopN操作符下推到TiKV。默认值为100. . |
tidb_stmt_summary_max_stmt_count |
修改 | 设置语句汇总表存储在内存中的最大语句数。修改默认值为200 到3000 . |
tidb_enable_streaming. |
弃用 | 系统变量enable-streaming 已弃用,不建议再使用。 |
配置文件参数
配置文件 | 配置项 | 改变类型 | 描述 |
---|---|---|---|
TIDB配置文件 | Pessimistic-txn.deadlock-unighary-collect-Retryable |
新补充 | 控制是否信息\ _SCHEMA。死锁 表收集重试死锁错误消息。 |
TIDB配置文件 | security.auto-tls. |
新补充 | 确定是否在启动时自动生成TLS证书。默认值为错误的 . |
TIDB配置文件 | stmt-sumary.max-stmt-count |
修改 | 指定语句汇总表中允许保存的SQL类别的最大数量。修改默认值为200 到3000 . |
TIDB配置文件 | 实验。allow-表达索引 |
弃用 | 的allow-expression-index TiDB配置文件中的配置已弃用。 |
TIKV配置文件 | raftstore.cmd-batch. |
新补充 | 控制是否能够批量处理请求。启用时,写性能显着提高。默认值为真的 . |
TIKV配置文件 | raftstore.inspect-internal. |
新补充 | 在某个间隔,TIKV检查筏组件的延迟。此配置项指定检查的间隔。默认值为500毫秒 . |
TIKV配置文件 | roaftstore.max-ober-down-dows |
修改 | 允许对等体休眠的最长时间。超时的对等体被标记为下 , PD会尝试删除。修改默认值为5M 到10M . |
TIKV配置文件 | server.raft-client-queue-size |
新补充 | 指定TiKV中Raft消息的队列大小。默认值为8192. . |
TIKV配置文件 | storage.flow-control.enable. |
新补充 | 确定是否启用流量控制机制。默认值为真的 . |
TIKV配置文件 | Storage.flow-control.memtables-threshold |
新补充 | 当KVDB Memtables的数量达到该阈值时,流量控制机构开始工作。默认值为5 . |
TIKV配置文件 | Storage.Flow-Control.L0-文件阈值 |
新补充 | 当kvDB L0文件数达到该阈值时,流控机制开始工作。默认值为9 . |
TIKV配置文件 | storage.flow-control.soft-pending-conction-bytes-limit |
新补充 | 当kvdb中的待处理压缩字节达到此阈值时,流量控制机制开始拒绝一些写入请求并报告serverisbusy. 错误。默认值为“192GB”。 |
TIKV配置文件 | storage.flow-control.hard-pending-compaction-bytes-limit |
新补充 | 当KvDB中等待的压缩字节达到这个阈值时,流控制机制拒绝所有写请求并报告serverisbusy. 错误。默认值为“1024GB”。 |
其他
- 在升级之前,检查是否值
tidb_evolve_plan_baselines.
系统变量是在
.如果值是在
,设置为从
;否则,升级将失败。 - 对于从v4.0升级到v5.2的TIDB集群,默认值
tidb_multi_statement_mode.
改变从警告
到从
. - 升级前,请检查TiDB配置的值
反馈概率
.如果值不是0
,升级后会发生“可恢复的Goroutine”错误的“恐慌”,但此错误不会影响升级。 - TiDB现在与MySQL 5.7的noop变量兼容
innodb_default_row_format.
.设置此变量没有效果。#23541 - 从TIDB 5.2开始,提高系统安全性,建议(但不是强制性)来加密来自客户端的连接的传输层。TIDB提供Auto TLS功能,可自动配置和启用TIDB中的加密。要使用Auto TLS功能,请在TIDB升级之前,设置
security.auto-tls.
的TiDB配置文件真的
.
新功能
SQL
支持在表达式索引中使用多个函数
表达式索引是一种可以在表达式上创建的特殊索引类型。创建表达式索引后,TiDB支持基于表达式的查询,极大地提高了查询性能。
支持
翻译
在Oracle中的功能的
翻译
函数通过字符串中的其他字符替换所有字符。在TIDB中,此功能不会将空字符串视为空值
正如Oracle所做的那样。支持溢HashAgg
支持将HashAgg溢出到磁盘。当包含HashAgg操作符的SQL语句导致内存不足(OOM)时,可以尝试将该操作符的并发性设置为
1
触发磁盘溢出,减轻了内存应力。提高优化器基数估计的准确性
改进优化器的索引选择
添加索引选择的修剪规则。在使用统计数据的比较之前,TIDB使用这些规则来缩小要选择的可能索引的范围,这降低了选择非最佳索引的可能性。
事务
锁定视图的一般可用性(GA)
锁定视图功能提供有关锁定冲突和锁定等待悲观锁的更多信息,帮助DBA观察事务锁定事件并解决死锁问题。
在V5.2中,锁定视图以下提高:
除了与锁定视图相关表中的SQL Digest列外,将列添加到显示相应的归一化SQL文本的这些表中。您不必手动查询对应于SQL摘要的语句。
添加
TIDB_DECODE_SQL_DIGESTS
查询归一化SQL语句的函数(没有格式和参数的形式)对应于集群中的一组SQL摘要。这简化了查询事务历史上执行的语句的操作。添加一个列
data_lock_waits.
和死锁
系统表以显示从密钥解释的表名,行ID,索引值和其他密钥信息。这简化了诸如定位键所属和解释关键信息的表的操作。支持收集重试死锁错误的信息
死锁
表格,这使得更容易解决此类错误引起的问题。默认情况下禁用错误集合,可以使用使用Pessimistic-txn.deadlock-unighary-collect-Retryable
配置。支持将查询执行事务与空闲事务区分开来
tidb_trx.
系统表。的正常的
国家现在分为运行
和闲置的
状态。用户文档:
查看集群中所有TiKV节点上发生的悲观锁等待事件:
data_lock_waits.
查看TIDB节点最近发生的死锁错误:
死锁
查看TiDB节点上正在执行的事务:
tidb_trx.
优化在表中添加索引的用户方案
auto_random.
或者shard_row_id_bits.
属性。
稳定
增加TiFlash io流量限制
该特性适用于特定大小的磁盘带宽较小的云存储。默认禁用。
Tiflash I / O Rate Limiter提供了一种新机制,以避免读写任务之间的I / O资源过度竞争。它余额符合读写任务的响应,并根据读/写工作量自动限制速率。
提高TIKV流量控制的稳定性
TIKV推出了一种新的流量控制机制来取代以前的RockSDB写入失速机制。与写入失速机制相比,这种新机制可降低对前景写入稳定性的影响。
具体来说,当RocksDB压实应力累积时,流动控制在TiKV调度层而不是RocksDB层进行,避免了以下问题:
从群集中的单个慢速TIKV节点引起的影响自动检测和恢复
TIKV介绍慢速检测机制。该机制通过检查TIKV筏机的速率来计算分数,然后通过商店心跳报告到PD的分数。同时,它增加了
evict-慢速商店调度程序
PD上的调度程序自动驱逐单个慢TIKV节点上的领导者。通过这种方式,减轻了对整个簇的影响。与此同时,引入了更多关于慢节点的警报项目,以帮助您快速查明并解决问题。
数据迁移
简化数据迁移的操作(DM)
DM V2.0.6可以使用VIP自动识别数据源的更改事件(故障转移或计划更改),并可以自动连接到新的数据源实例,以减少数据复制延迟并简化操作程序。
TIDB Lightning支持CSV数据中的定制线路终结器,并与MySQL Load Data CSV数据格式兼容。然后,您可以直接在数据流架构中使用TIDB闪电。
TIDB数据共享订阅
TiCDC支持使用HTTP协议(OpenAPI)管理TiCDC任务,对于Kubernetes和本地环境都是一种更加友好的操作方式。(实验特性)
部署和操作
支持运行Tiup游乐场
使用Apple M1芯片Mac计算机的命令。
功能增强
工具
改进
TiDB
- 支持推下内置功能
json_unquote()
tikv.#24415 - 支持删除
联盟
从双桌子分支#25614 - 优化总操作员的成本因素# 25241
- 允许MPP外部连接根据表的行数选择构建表#25142
- 支持基于区域的不同的TIFlash节点之间平衡MPP查询工作负载# 24724
- 在执行MPP查询后,支持缓存中的陈旧区域#24432
- 提高内置函数的MySQL兼容性
str_to_date
对于格式说明符%b /%m /%r /%t
#25767 - 修复在为同一查询重新创建不同绑定之后在多个TIDB中创建不一致的绑定缓存的问题#26015
- 修复升级后,现有绑定无法加载到缓存中的问题# 23295
- 支持订购结果
显示绑定
经过 (original_sql
,更新时间
)# 26139 - 当存在绑定时,提高查询优化的逻辑,并减少查询的优化时间# 26141
- 支持在“已删除”状态下自动完成垃圾收集#26206
- 显示绑定是否用于查询优化的结果
解释verbose.
#26930 - 添加一个新的状态变化
last_plan_binding_update_time.
查看当前TIDB实例中的绑定缓存对应的时间戳# 26340 - 支持在开始绑定演进或运行时报告错误
管理发展绑定
禁止基线演进(目前在本地TiDB版本中禁用,因为它是一个实验特性)影响其他特性# 26333
- 支持推下内置功能
PD
TiFlash
- 增加运营商:
国防部/ %
,喜欢
- 添加字符串函数:
ASCII()
,合并()
,长度()
,POSITION ()
,修剪()
- 增加数学函数:
CONV ()
,CRC32()
,Degle()
,Exp()
,ln()
,日志()
,log10()
,LOG2 ()
,战俘()
,弧度()
,圆形(十进制)
,罪()
,mod()
- 添加日期函数:
adddate(字符串,真实)
,date_add(字符串,真实)
,日期()
- 添加其他功能:
INET_NTOA ()
,Inet_Aton()
,Inet6_aton.
,INET6_NOTA()
- 当启用新的排序规则时,支持MPP模式下的shuffle Hash Join和shuffle Hash Aggregation计算
- 优化基本代码以提高MPP性能
- 支持铸造
细绳
类型的双倍的
类型 - 使用多个线程优化右外连接中的未加入数据
- 支持自动使MPP查询中的陈旧区域无效
- 增加运营商:
工具
Bug修复
TiDB
- 修复使用Merge Join时返回错误结果的问题
集
键入列# 25669 - 修复数据损坏问题
在
表达的论点#25591 - 避免GC会话受到全局变量的影响#24976
- 修复使用时出现的恐慌问题
限制
在窗口函数中查询#25344 - 查询分区表时修复错误的值
限制
#24636 - 解决问题
IFNULL
没有正确生效枚举
或者集
键入列# 24944 - 修复了改变的错误结果
数数
在加入子查询第一排
#24865 - 修复查询挂起问题时发生的
ParallelApply
用下面使用top
操作符# 24930 - 修复使用多列前缀索引执行SQL语句时返回更多结果的问题# 24356
- 解决问题
< = >
操作符不能正确生效#24477 - 修正了并行的数据竞争问题
应用
操作符# 23280 - 解决问题
索引超出范围
在对PartitionUnion操作符的IndexMerge结果进行排序时,报告错误# 23919 - 修复设置的问题
tidb_snapshot
变量设置为意外的大值可能会破坏事务隔离# 25680 - 修复odbc样式常量(例如,
{D'2020-01-01'}
)不能用作表达式#25531 - 解决问题
选择不同
转换成批处理得到
导致结果不正确#25320 - 修正了从TiFlash退回到TiKV查询无法触发的问题#23665#24421
- 修复
index-out-of-range
检查时发生的错误仅限_full_group_by.
#23839) - 修复了索引加入在相关子查询的结果是错误的#25799
- 修复使用Merge Join时返回错误结果的问题
Tikv.
PD
TiFlash
- 修复Tiflash由于拆分故障而导致重新启动的问题
- 修正了TiFlash无法删除增量数据的潜在问题
- 修复了Tiflash在非二进制字符中添加错误填充的错误
投掷
函数 - 处理具有复杂的聚合查询时修复不正确的结果
通过...分组
列 - 修复了在重写压力下发生的TIFLASH恐慌问题
- 修复当右jon键未以无效时发生的恐慌,左连接键可为空
- 解决潜在问题
读索引
请求需要很长时间 - 修复读取负载过重时发生的恐慌问题
- 修复当
日期格式
函数被调用细绳
键入参数空值
价值
工具
TiCDC
- 修复刷新检查点时TiCDC所有者异常退出的问题#1902
- 修复了changefeed在成功创建后立即失败的bug#2113
- 修复了由于规则过滤器的无效格式而发生转换reeed失败的错误#1625
- 在TICDC所有者恐慌时修复潜在的DDL丢失问题#1260
- 修复了CLI与4.0的兼容性问题。默认排序引擎选项中的X个集群#2373
- 修正了当TiCDC获取时changefeed可能被意外重置的错误
errschemastoragetablemiss.
错误# 2422 - 修复TICDC获取时无法删除的错误
ergcttlexceeded
错误#2391 - 修复TICDC无法将大型表与CDCLog同步的错误#1259# 2424
- 修复TICDC重新安排表时多个处理器可能将数据写入同一表的错误# 2230
备份与恢复(BR)
TIDB Lightning.
饺子