110亿表建索引,如何做到不影响业务

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.1.2
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】110亿表建索引,如何做到不影响业务
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

生产环境,原来索引选择性不好,准备调整新建索引,删除原来的索引。
有啥好办法不影响到业务。测试环境用快速建索引方法,调了并行度,cpu爆了。

并行度如何调整的? tidb_ddl_reorg_worker_cnt 参数在 8 版本前不能调整 fast reorg ddl 的并发度,参考:https://docs.pingcap.com/zh/tidb/stable/release-8.0.0#行为变更
建议你还是关掉 fast reorg ,慢慢建索引吧

可以调整的啊
set global tidb_ddl_reorg_worker_cnt=4;


你调整了也没用啊 :joy:

https://docs.pingcap.com/zh/tidb/v7.5/release-7.5.0

7.5版本才会有好的办法,完全不影响业务。
可以临时扩容一台或者多台tidb,

https://docs.pingcap.com/zh/tidb/v7.5/system-variables#tidb_service_scope-从-v740-版本开始引入

把这些新扩容的机器的 tidb_service_scope设置为background。
添加索引的时候,只有扩容的机器在执行add index。做完了,再缩容掉。这样对原来的业务影响就小。
而且有多台tidb并行建立索引的时候,整体建立索引的时间也会大幅缩短。
我自己测试2台add index所用的时间是1台tidb的66%。如果是3台,还会更低一些。

:joy:这样啊。。。

那不错。

如果想稳 就不能图快,太慢会影响业务,确实头疼。100亿的表,多少G?

具体的存储大小会受到多种因素的影响,包括数据的类型、压缩率、索引的数量和大小等。

假设一行数据1KB大小,100亿行就是9,536GB左右

1.5t

1.5t,表是短表

有大佬处理过大表建索引没?temp_dir需要调整吗?
准备关闭快速建索引功能,慢慢建了

只要有空间,慢慢建呗,不影响业务

好的,多谢解答

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。