TiDB DDL 是 TiDB 数据库中不可或缺的一部分,它提供了强大的功能来定义和管理数据库的架构,并确保数据库的灵活性和可扩展性。
TiDB 对于提升 DDL 性能,稳定性已经做了一些功能迭代,如:
-
v6.3 引入的 tidb_ddl_enable_fast_reorg
,v6.5 默认开启。开启后能显著提升大表加索引的性能。
-
v7.1 引入的tidb_enable_dist_task
,v8.1 默认开启。开启后,会将 Add index 任务拆分成多个子任务并调度到多个 TiDB 节点执行,进一步提升大表加索引的性能。
-
v7.4 引入的tidb_service_scope
,还可以对 TiDB 节点打标,让这些分布式 Add index 任务调度到指定标签的 TiDB 节点上,从而和其他业务负载隔离。
我们也希望能听到大家的使用反馈和建议呀,让 DDL 功能做得更好!
本期话题:
关于 TiDB DDL 你有哪些使用反馈和建议!
请按照以下模版进行评论哈:
- 当前使用的 TiDB 版本:
- 是否有使用过
tidb_ddl_enable_fast_reorg
(v6.5默认开启),tidb_enable_dist_task
(v8.1默认开启) 来加速索引的创建?
- 如果有,最大的一个表有多少数据量?该表有多行?多少列?
- 使用这些特性前后,加索引的耗时分别是多少?
tidb_ddl_reorg_batch_size
和 tidb_ddl_reorg_worker_cnt
在 v8.3 版本的行为变更影响是否可接受?
- 这 2 个变量,调大时,会提升 DDL 性能,但是相应的也会消耗更多的集群资源。在 v8.3 之前仅支持 Global 级别设置,因此需要 SUPER 或者 SYSTEM_VARIABLES_ADMIN 权限才能修改。如果公司权限分的比较细,修改这 2 个变量,需要提交工单给具有相应权限的人,让他们来修改。因此当加索引频率较高,同时为了避免对业务影响,不同时间需要设置不同的值时。这个权限限制,使得加索引不够灵活。
- 因此从 v8.3 开始支持了 session 级别设置该参数,无需 SUPER 或者 SYSTEM_VARIABLES_ADMIN 权限。但是会导致在 Global 级别设置这 2 个参数取值,不再对运行中的 Add index , Modify column , reorgnize partition 这 3 类 DDL 任务生效。需要 Cancel 这些 DDL job,重新提交。对于这个变动的影响,是否可接受?
- 对于该变更,你有哪些看法和建议?
- 当前您在执行 DDL 时,还遇到哪些痛点?请结合应用场景举例说明。
- 还有哪些 DDL 功能是您迫切希望支持的?
- 使用快速加索引功能过程中对于你们在线业务的影响这方面体验如何?
- 其他反馈和建议。
参与奖励:
参与调研,留言参与讨论,获得 100 积分&经验值奖励;评论区抽 5 位参与调研的小伙伴送 TiDB 社区最新款金属手机支架和新款皮质收纳袋!
奖品一览:
活动时间:
2024.11.1 -2024.11.8
让我们一起将 TiDB DDL 变得更好!
另外,使用快速加索引功能过程中对于你们在线业务的影响这块,如果方便也可以告诉我们你的体验如何?
1 个赞
1、当前使用的 TiDB 版本:v8.2
2、否
3、可以接受。虽然需要重新提交DDL任务,但session级别的设置使得权限管理更加灵活,对业务的影响可控。
对于该变更,你有哪些看法和建议?
我认为这个变更是一个积极的改进,它使得DDL任务的权限管理更加灵活,适应了不同公司对权限的细分需求。建议在官方文档中增加详细的变更说明和最佳实践,以便用户更好地理解和应用这一变更。
4、当前您在执行 DDL 时,还遇到哪些痛点?请结合应用场景举例说明。
在执行DDL时,有时会遇到锁等待的问题,尤其是在高并发的场景下,DDL任务可能会因为锁等待而延迟。例如,在进行大规模数据迁移时,需要对多个表进行DDL操作,这时锁等待会导致迁移效率降低。
5、还有哪些 DDL 功能是您迫切希望支持的?
希望能够支持更多的在线DDL操作,比如在线修改表结构,这样可以减少业务停机时间,提高系统的可用性。
6、使用快速加索引功能过程中对于你们在线业务的影响这方面体验如何?
使用快速加索引功能后,对在线业务的影响较小,加索引过程中系统性能稳定,没有出现明显的性能下降。
7、其他反馈和建议。
建议TiDB团队能够持续优化DDL的性能和稳定性,特别是在大数据量的场景下。同时,希望能够提供更多的监控和诊断工具,帮助我们更好地分析和优化DDL任务。
洪七表哥
(Ti D Ber Z Un Fk8 Og)
7
当前使用的 TiDB 版本:
v6.5/v7.5.1
是否有使用过 tidb_ddl_enable_fast_reorg(v6.5默认开启),tidb_enable_dist_task(v8.1默认开启) 来加速索引的创建?
如果有,最大的一个表有多少数据量?该表有多行?多少列?
使用这些特性前后,加索引的耗时分别是多少?
没有使用过
tidb_ddl_reorg_batch_size 和 tidb_ddl_reorg_worker_cnt 在 v8.3 版本的行为变更影响是否可接受?
这 2 个变量,调大时,会提升 DDL 性能,但是相应的也会消耗更多的集群资源。在 v8.3 之前仅支持 Global 级别设置,因此需要 SUPER 或者 SYSTEM_VARIABLES_ADMIN 权限才能修改。如果公司权限分的比较细,修改这 2 个变量,需要提交工单给具有相应权限的人,让他们来修改。因此当加索引频率较高,同时为了避免对业务影响,不同时间需要设置不同的值时。这个权限限制,使得加索引不够灵活。
因此从 v8.3 开始支持了 session 级别设置该参数,无需 SUPER 或者 SYSTEM_VARIABLES_ADMIN 权限。但是会导致在 Global 级别设置这 2 个参数取值,不再对运行中的 Add index , Modify column , reorgnize partition 这 3 类 DDL 任务生效。需要 Cancel 这些 DDL job,重新提交。对于这个变动的影响,是否可接受?
对于该变更,你有哪些看法和建议?
可以接受
当前您在执行 DDL 时,还遇到哪些痛点?请结合应用场景举例说明。
还有哪些 DDL 功能是您迫切希望支持的?
在线修改表结构
使用快速加索引功能过程中对于你们在线业务的影响这方面体验如何?
使用不多
其他反馈和建议。
希望支持存储过程
1 当前使用的 TiDB 版本:v7.5.2
2 暂时没使用过 tidb_ddl_enable_fast_reorg
7 建议TIDB尽快支持触发器和存储过程
templey
(templey)
9
1、当前使用的 TiDB 版本:v7.5
2、否
4、当前您在执行 DDL 时,还遇到哪些痛点?请结合应用场景举例说明。
锁等待而延迟,执行时间问题
5、还有哪些 DDL 功能是您迫切希望支持的?
在线ddl,能否秒加
7、其他反馈和建议。
希望对ddl优化更多点
隔壁老帆
(隔壁老帆)
12
1、当前使用的 TiDB 版本:v7.5
2、否
4、当前您在执行 DDL 时,还遇到哪些痛点?请结合应用场景举例说明。
锁等待而延迟,执行时间问题
5、还有哪些 DDL 功能是您迫切希望支持的?
在线ddl,能否秒加
7、其他反馈和建议。
希望对ddl优化更多点
1 个赞
小小橙兜
13
1、当前使用的 TiDB 版本:v8.2
2、否
4、当前您在执行 DDL 时,还遇到哪些痛点?请结合应用场景举例说明。
轻量级的锁,能实现更多的instance模式;
5、还有哪些 DDL 功能是您迫切希望支持的?
online DDL的增强
7、其他反馈和建议。
希望TIDDB越来越好
清风明月
14
1 当前TiDB 版本:v7.5.0
2 执行 DDL 时,还遇到哪些痛点?暂无
3 建议TIDB尽快支持触发器和存储过程
diwing
(Ti D Ber R Qstj35v)
15
1,2,3都还行
4.问题是参数有点多,调整不当影响系统性能以及稳定性
56.online ddl所有前台操作都能一秒成功
后台保证性能,一致性,稳定性等。
系统实现方式类似pt-osc gho不等
koby
(Ti D Ber Bk7apg Dl)
16
1、当前使用的TiDB版本为:7.5.2
2、当前您在使用DDL时,还遇到哪些痛点?暂无
3、还有哪些DDL功能是您迫切希望支持的?暂无
4、其他反馈和建议:希望TiDB做得越来越好。
xfworld
(魔幻之翼)
18
需要考虑下上下游的链路,比如 TiCDC 怎么支持这个 DDL 的变更
边城元元
(边城元元)
19
1、当前使用的 TiDB 版本:v8.1
2、否
4、当前您在执行 DDL 时,还遇到哪些痛点?没有发现
5、还有哪些 DDL 功能是您迫切希望支持的?无
7、其他反馈和建议。TiDB越来越好