 TiDB v8.0 中文手册收集来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对 象加入队列,逐个收集并更新。在之前的版本中,这些对象的收集顺序是随机的,可能导致更需要更 新的对象等待时间过长,从而引发潜在的数据库性能回退。 从 v8.0.0 开始,自动统计信息收集引入了优先级队列,根据多种条件动态地为对象分配优先级,确保更 有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等。同时,TiDB 支持执行计划缓存,能够有效降低交易类业务系统的处理时延,是提升性能的重要手段。在 v8.0.0 中,TiDB 解除了执行计划缓存的几个限制,含有以下内容的执行计划均能够被缓存: – 分区表 – 生成列,包含依赖生成列的对象(比如多值索引) 该增强扩展了执行计划缓存的使用场景,提升了复杂场景下数据库的整体性能。 更多信息,请参考[用户文档](#prepare-语句执行计划缓存)。 • 优化器增强对多值索引的支持 #47759 SQL 可能选择到数个 多值索引时,优化器可以识别开销更小的索引。 – 在查询条件中使用 OR 连接多个 member of 条件时,优化器能够为每个 DNF Item(member of 条 件)匹配一个有效的 Index Partial Path 路径,并通过 Union 操作将这些路径集合起来,形成一个 Index Merge,以实现更高效的条件过滤和数据读取。 更多信息,请参考用户文档。0 码力 | 4805 页 | 101.28 MB | 1 年前3 TiDB v8.0 中文手册收集来保持统计信息的更新。自动统计信息收集轮询所有对象的统计信息状态,并把健康度不足的对 象加入队列,逐个收集并更新。在之前的版本中,这些对象的收集顺序是随机的,可能导致更需要更 新的对象等待时间过长,从而引发潜在的数据库性能回退。 从 v8.0.0 开始,自动统计信息收集引入了优先级队列,根据多种条件动态地为对象分配优先级,确保更 有收集价值的对象优先被处理,比如新创建的索引、发生分区变更的分区表等。同时,TiDB 支持执行计划缓存,能够有效降低交易类业务系统的处理时延,是提升性能的重要手段。在 v8.0.0 中,TiDB 解除了执行计划缓存的几个限制,含有以下内容的执行计划均能够被缓存: – 分区表 – 生成列,包含依赖生成列的对象(比如多值索引) 该增强扩展了执行计划缓存的使用场景,提升了复杂场景下数据库的整体性能。 更多信息,请参考[用户文档](#prepare-语句执行计划缓存)。 • 优化器增强对多值索引的支持 #47759 SQL 可能选择到数个 多值索引时,优化器可以识别开销更小的索引。 – 在查询条件中使用 OR 连接多个 member of 条件时,优化器能够为每个 DNF Item(member of 条 件)匹配一个有效的 Index Partial Path 路径,并通过 Union 操作将这些路径集合起来,形成一个 Index Merge,以实现更高效的条件过滤和数据读取。 更多信息,请参考用户文档。0 码力 | 4805 页 | 101.28 MB | 1 年前3
 TiDB v8.5 中文手册中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported Unsupported operate same column/index 的错误。 • 不支持使用单个 ALTER TABLE 语句同时修改多个 TiDB 特有的模式对象,包括 TIFLASH REPLICA,SHARD_ �→ ROW_ID_BITS,AUTO_ID_CACHE 等。 • ALTER TABLE 不支持少部分类型的变更。比如,TiDB 不支持从 DECIMAL 到 DATE 的变更。当遇到不支持的 义数据库对象,包括库、表、视图和索引等。 • DML (Data Manipulation Language):数据操作语言,用来操作和业务相关的记录。 • DQL (Data Query Language):数据查询语言,用来查询经过条件筛选的记录。 • DCL (Data Control Language):数据控制语言,用来定义访问权限和安全级别。 常用的 DDL 功能是对象(如表、0 码力 | 5095 页 | 104.54 MB | 10 月前3 TiDB v8.5 中文手册中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported Unsupported operate same column/index 的错误。 • 不支持使用单个 ALTER TABLE 语句同时修改多个 TiDB 特有的模式对象,包括 TIFLASH REPLICA,SHARD_ �→ ROW_ID_BITS,AUTO_ID_CACHE 等。 • ALTER TABLE 不支持少部分类型的变更。比如,TiDB 不支持从 DECIMAL 到 DATE 的变更。当遇到不支持的 义数据库对象,包括库、表、视图和索引等。 • DML (Data Manipulation Language):数据操作语言,用来操作和业务相关的记录。 • DQL (Data Query Language):数据查询语言,用来查询经过条件筛选的记录。 • DCL (Data Control Language):数据控制语言,用来定义访问权限和安全级别。 常用的 DDL 功能是对象(如表、0 码力 | 5095 页 | 104.54 MB | 10 月前3
 TiDB v8.4 中文手册中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported Unsupported operate same column/index 的错误。 • 不支持使用单个 ALTER TABLE 语句同时修改多个 TiDB 特有的模式对象,包括 TIFLASH REPLICA,SHARD_ �→ ROW_ID_BITS,AUTO_ID_CACHE 等。 • ALTER TABLE 不支持少部分类型的变更。比如,TiDB 不支持从 DECIMAL 到 DATE 的变更。当遇到不支持的 语句列表,参见SQL 语句概览。 3.3.1 分类 SQL 语言通常按照功能划分成以下的 4 个部分: • DDL (Data Definition Language):数据定义语言,用来定义数据库对象,包括库、表、视图和索引等。 • DML (Data Manipulation Language):数据操作语言,用来操作和业务相关的记录。 92 • DQL (Data Query Lang0 码力 | 5072 页 | 104.05 MB | 10 月前3 TiDB v8.4 中文手册中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported Unsupported operate same column/index 的错误。 • 不支持使用单个 ALTER TABLE 语句同时修改多个 TiDB 特有的模式对象,包括 TIFLASH REPLICA,SHARD_ �→ ROW_ID_BITS,AUTO_ID_CACHE 等。 • ALTER TABLE 不支持少部分类型的变更。比如,TiDB 不支持从 DECIMAL 到 DATE 的变更。当遇到不支持的 语句列表,参见SQL 语句概览。 3.3.1 分类 SQL 语言通常按照功能划分成以下的 4 个部分: • DDL (Data Definition Language):数据定义语言,用来定义数据库对象,包括库、表、视图和索引等。 • DML (Data Manipulation Language):数据操作语言,用来操作和业务相关的记录。 92 • DQL (Data Query Lang0 码力 | 5072 页 | 104.05 MB | 10 月前3
 TiDB v8.1 中文手册schema 并运行着类似的 SQL。在这种情况下,逐一为每个数据库做 SQL �→ 绑定是不切实际的。TiDB v7.6.0 引入跨数据库绑定执行计划,支持在所有 schema �→ 相同的数据库之间匹配绑定计划。 TiDB v8.1 中文手册schema 并运行着类似的 SQL。在这种情况下,逐一为每个数据库做 SQL �→ 绑定是不切实际的。TiDB v7.6.0 引入跨数据库绑定执行计划,支持在所有 schema �→ 相同的数据库之间匹配绑定计划。- 支持 TiProxy(从 v8 成为正式功能。 你可以针对某个资源组 (Resource Group) 设置查询的最长执行时间。当查询的执行时间超过设置值时,自 动降低查询的优先级或者取消查询。你还可以设置在一段时间内通过文本或者执行计划立即匹配已经 识别出的查询,从而避免问题查询的并发度太高时,在识别阶段就造成大量资源消耗的情况。 TiDB 同时支持手动标记查询的功能。利用命令QUERY WATCH,你可以根据 SQL 的文本、SQL Digest 中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported 330 码力 | 4807 页 | 101.31 MB | 1 年前3 TiDB v8.2 中文手册@ghazalfamilyusa – 优化对大数据量的表进行简单查询时获取数据分布信息的性能 #53850 @you06 – 聚合的结果集能够作为 IndexJoin 的内表,使更多的复杂查询可以匹配到 IndexJoin,从而可以通过索 引提升查询效率 #37068 @elsa0520 – 通过批量删除 TiFlash placement rule 的方式,提升对分区表执行 TRUNCATE、DROP 中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported Unsupported operate same column/index 的错误。 • 不支持使用单个 ALTER TABLE 语句同时修改多个 TiDB 特有的模式对象,包括 TIFLASH REPLICA,SHARD_ �→ ROW_ID_BITS,AUTO_ID_CACHE 等。 • ALTER TABLE 不支持少部分类型的变更。比如,TiDB 不支持从 DECIMAL 到 DATE 的变更。当遇到不支持的0 码力 | 4987 页 | 102.91 MB | 10 月前3 TiDB v8.2 中文手册@ghazalfamilyusa – 优化对大数据量的表进行简单查询时获取数据分布信息的性能 #53850 @you06 – 聚合的结果集能够作为 IndexJoin 的内表,使更多的复杂查询可以匹配到 IndexJoin,从而可以通过索 引提升查询效率 #37068 @elsa0520 – 通过批量删除 TiFlash placement rule 的方式,提升对分区表执行 TRUNCATE、DROP 中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported Unsupported operate same column/index 的错误。 • 不支持使用单个 ALTER TABLE 语句同时修改多个 TiDB 特有的模式对象,包括 TIFLASH REPLICA,SHARD_ �→ ROW_ID_BITS,AUTO_ID_CACHE 等。 • ALTER TABLE 不支持少部分类型的变更。比如,TiDB 不支持从 DECIMAL 到 DATE 的变更。当遇到不支持的0 码力 | 4987 页 | 102.91 MB | 10 月前3 TiDB v7.6 中文手册schema 并运行着类似的 SQL。在这种情况下,逐一为每个数据库做 SQL �→ 绑定是不切实际的。TiDB v7.6.0 引入跨数据库绑定执行计划,支持在所有 schema �→ 相同的数据库之间匹配绑定计划。 TiDB v7.6 中文手册schema 并运行着类似的 SQL。在这种情况下,逐一为每个数据库做 SQL �→ 绑定是不切实际的。TiDB v7.6.0 引入跨数据库绑定执行计划,支持在所有 schema �→ 相同的数据库之间匹配绑定计划。- BR �→ 语句在大数据量表场景下的建表性能 #48301 @Leavrth * 重构 BR 异常处理机制,提高对未知错误的容忍度 #47656 @3pointer – TiCDC * 通过增加并行,优化了 TiCDC 同步数据到对象存储的性能 #10098 @CharlesCheung96 * 支持通过在 sink-uri 中设置 content-compatible=true 使 TiCDC Canal-JSON 兼容 Canal @Lloyd-Pottiger 54 – 修复在 TiDB 执行并发 DDL 遇到冲突时 TiFlash panic 的问题 #8578 @JaySon-Huang – 修复存算分离架构下,可能无法正常选出对象存储数据 GC owner 的问题 #8519 @JaySon-Huang – 修复 lowerUTF8/upperUTF8 不允许大小写字符占据不同字节数的错误 #8484 @gengliqi 0 码力 | 4666 页 | 101.24 MB | 1 年前3 TiDB v7.1 中文手册Restore (BR) * 支持在备份日志时修改 TiKV 配置项 log-backup.max-flush-interval #14433 @joccau – TiCDC * 优化同步数据到对象存储的场景下发生 DDL 事件时的目录结构 #8890 @CharlesCheung96 * 优化 TiCDC 在同步任务失败时对上游 GC TLS 的设置方法 #8403 @charleszheng44 不能自动恢复的问题 #8812 #8877 @asddongmen * 修复上游 TiKV 节点 crash 时 checkpoint lag 上升的问题 #8858 @hicqu * 修复当同步数据到对象存储时上游的 EXCHANGE PARTITION 操作没有正常同步到下游的问题 #8914 @CharlesCheung96 * 修复在某些特殊场景下 sorter 组件内存使用过多导致 OOM 中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported0 码力 | 4369 页 | 98.92 MB | 1 年前3 TiDB v7.1 中文手册Restore (BR) * 支持在备份日志时修改 TiKV 配置项 log-backup.max-flush-interval #14433 @joccau – TiCDC * 优化同步数据到对象存储的场景下发生 DDL 事件时的目录结构 #8890 @CharlesCheung96 * 优化 TiCDC 在同步任务失败时对上游 GC TLS 的设置方法 #8403 @charleszheng44 不能自动恢复的问题 #8812 #8877 @asddongmen * 修复上游 TiKV 节点 crash 时 checkpoint lag 上升的问题 #8858 @hicqu * 修复当同步数据到对象存储时上游的 EXCHANGE PARTITION 操作没有正常同步到下游的问题 #8914 @CharlesCheung96 * 修复在某些特殊场景下 sorter 组件内存使用过多导致 OOM 中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported0 码力 | 4369 页 | 98.92 MB | 1 年前3 TiDB v7.5 中文手册行框架。在 v7.4.0 中,TiDB 以该框架为基础, �→ 引入全局排序,消除了数据 reorg 任务期间临时无序数据导致的不必要的 I/O、CPU 和内存峰值。 �→ 全局排序利用外部对象存储(目前为 Amazon S3)来存储系统作业期间的中间文件, �→ 提高灵活性并降低成本。 TiDB v7.5 中文手册行框架。在 v7.4.0 中,TiDB 以该框架为基础, �→ 引入全局排序,消除了数据 reorg 任务期间临时无序数据导致的不必要的 I/O、CPU 和内存峰值。 �→ 全局排序利用外部对象存储(目前为 Amazon S3)来存储系统作业期间的中间文件, �→ 提高灵活性并降低成本。- ADD INDEX和- IMPORT INTO�→ CREATE INDEX DDL 的问题 #47482 @Leavrth * 修复大宽表场景下,日志备份在某些场景中可能卡住的问题 #15714 @YuJuncen – TiCDC * 修复同步数据到对象存储时访问 NFS 目录导致的性能问题 #10041 @CharlesCheung96 * 修复开启 claim-check 导致存储路径拼写错误的问题 #10036 @3AceShowHand 中,所有支持的 DDL 变更操作都是在线执行的。与 MySQL 相比,TiDB 中的 DDL 存在以下限制: • 使用 ALTER TABLE 语句修改一个表的多个模式对象(如列、索引)时,不允许在多个更改中指定同一个 模式对象。例如,ALTER TABLE t1 MODIFY COLUMN c1 INT, DROP COLUMN c1 在两个更改中都指定了 c1 列,执行该语句会输出 Unsupported0 码力 | 4590 页 | 100.91 MB | 1 年前3 TiDB v6.5 中文手册行每秒,复制延迟降低到 2 秒。 • 提供行级别Time to live (TTL) 管理数据生命周期(实验特性)。 • TiCDC 支持 Amazon S3、Azure Blob Storage、NFS 的对象存储(实验特性)。 2.2.1 新功能 2.2.1.1 SQL • TiDB 添加索引的性能约提升为原来的 10 倍 (GA) #35983 @benjamin2037 @tangenta TiDB 能。在这种场景下,最优的执行计划可能仍旧在 SQL 执行历史中,还没有被清除。 在 v6.5.0 中,TiDB 扩展了CREATE [GLOBAL | SESSION] BINDING 语句中的绑定对象,支持根据历史执行 计划创建绑定。当 SQL 语句的执行计划发生改变时,只要原来的执行计划仍然在 SQL 执行历史内存 表(例如,statements_summary)中,就可以在 CREATE [GLOBAL 支持密码复杂度策略 #38928 @CbcWestwolf TiDB 启用密码复杂度策略功能后,在用户设置密码时,TiDB 会检查密码长度、大写和小写字符个数、数 字字符个数、特殊字符个数、密码字典匹配、是否与用户名相同等,以此确保用户设置了安全的密码。 TiDB 支持密码强度检查函数 VALIDATE_PASSWORD_STRENGTH(),用于判定一个给定密码的强度。 更多信息,请参考用户文档。0 码力 | 4049 页 | 94.00 MB | 1 年前3 TiDB v6.5 中文手册行每秒,复制延迟降低到 2 秒。 • 提供行级别Time to live (TTL) 管理数据生命周期(实验特性)。 • TiCDC 支持 Amazon S3、Azure Blob Storage、NFS 的对象存储(实验特性)。 2.2.1 新功能 2.2.1.1 SQL • TiDB 添加索引的性能约提升为原来的 10 倍 (GA) #35983 @benjamin2037 @tangenta TiDB 能。在这种场景下,最优的执行计划可能仍旧在 SQL 执行历史中,还没有被清除。 在 v6.5.0 中,TiDB 扩展了CREATE [GLOBAL | SESSION] BINDING 语句中的绑定对象,支持根据历史执行 计划创建绑定。当 SQL 语句的执行计划发生改变时,只要原来的执行计划仍然在 SQL 执行历史内存 表(例如,statements_summary)中,就可以在 CREATE [GLOBAL 支持密码复杂度策略 #38928 @CbcWestwolf TiDB 启用密码复杂度策略功能后,在用户设置密码时,TiDB 会检查密码长度、大写和小写字符个数、数 字字符个数、特殊字符个数、密码字典匹配、是否与用户名相同等,以此确保用户设置了安全的密码。 TiDB 支持密码强度检查函数 VALIDATE_PASSWORD_STRENGTH(),用于判定一个给定密码的强度。 更多信息,请参考用户文档。0 码力 | 4049 页 | 94.00 MB | 1 年前3 TiDB v6.1 中文手册效率。TiDB 在后台会定期对频繁变更的数据对象进行统计信息采集,但在业务高峰期时进行统计信息 采集可能会对集群资源造成挤压,影响业务的稳定运行。TiDB 从 v6.1.0 开始提供系统变量tidb_max_auto �→ _analyze_time 用来控制后台统计信息采集的最长执行时间,默认为 12 小时。当业务没有遇到资源 瓶颈的情况时,建议不要修改该参数,确保数据对象的统计信息及时采集。但是当业务压力大,资源 义数据库对象,包括库、表、视图和索引等。 • DML (Data Manipulation Language):数据操作语言,用来操作和业务相关的记录。 • DQL (Data Query Language):数据查询语言,用来查询经过条件筛选的记录。 • DCL (Data Control Language):数据控制语言,用来定义访问权限和安全级别。 常用的 DDL 功能是对象(如表、 功能是对象(如表、索引等)的创建、属性修改和删除,对应的命令分别是 CREATE、ALTER 和 DROP。 3.3.2 查看、创建和删除数据库 TiDB 语境中的 Database 或者说数据库,可以认为是表和索引等对象的集合。 使用 SHOW DATABASES 语句查看系统中数据库列表: SHOW DATABASES; 94 使用名为 mysql 的数据库: USE mysql; 使用 SHOW TABLES0 码力 | 3572 页 | 84.36 MB | 1 年前3共 17 条 TiDB v6.1 中文手册效率。TiDB 在后台会定期对频繁变更的数据对象进行统计信息采集,但在业务高峰期时进行统计信息 采集可能会对集群资源造成挤压,影响业务的稳定运行。TiDB 从 v6.1.0 开始提供系统变量tidb_max_auto �→ _analyze_time 用来控制后台统计信息采集的最长执行时间,默认为 12 小时。当业务没有遇到资源 瓶颈的情况时,建议不要修改该参数,确保数据对象的统计信息及时采集。但是当业务压力大,资源 义数据库对象,包括库、表、视图和索引等。 • DML (Data Manipulation Language):数据操作语言,用来操作和业务相关的记录。 • DQL (Data Query Language):数据查询语言,用来查询经过条件筛选的记录。 • DCL (Data Control Language):数据控制语言,用来定义访问权限和安全级别。 常用的 DDL 功能是对象(如表、 功能是对象(如表、索引等)的创建、属性修改和删除,对应的命令分别是 CREATE、ALTER 和 DROP。 3.3.2 查看、创建和删除数据库 TiDB 语境中的 Database 或者说数据库,可以认为是表和索引等对象的集合。 使用 SHOW DATABASES 语句查看系统中数据库列表: SHOW DATABASES; 94 使用名为 mysql 的数据库: USE mysql; 使用 SHOW TABLES0 码力 | 3572 页 | 84.36 MB | 1 年前3共 17 条- 1
- 2
 













