【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】tidb可以同时创建多个不同表的索引吗?有没有参数控制?
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
TiDB 目前不支持同时为多个不同表创建索引。创建索引时有以下几个限制:
- 不支持同时添加多个索引。每次只能添加一个索引
- 创建索引时会消耗大量资源,建议在业务低峰期进行
- 创建索引时可能会与频繁更新的字段冲突,影响应用性能
- TiDB 不支持 FULLTEXT、HASH 和 SPATIAL 类型的索引
- TiDB 不支持降序索引(与 MySQL 5.7 类似)
- 不支持向表中添加 CLUSTERED 类型的主键
虽然没有直接控制同时创建多个索引的参数,但有一些相关的配置可以影响索引创建:
tidb_enable_dist_task
: 这个系统变量控制是否启用分布式任务。如果启用,请确保集群中每个 TiDB 节点的临时目录有足够的磁盘空间allow-expression-index
: 这个配置选项控制是否允许创建表达式索引
2.这里深有体会,对于组合索引容量增长比例很大
貌似应该是不支持的。感觉也没有这种场景吧,难道是分库分表?
不支持
不可以,索引是一个队列,只能一次执行一个,想快点加索引就改并行参数,会快非常多
1 个赞
多个客户端并行提交,串行执行吧。
索引创建条列是由一个个执行的。
1 个赞
可以同时提交创建索引的SQL语句,但是这些创建索引的SQL会被加入到一个add index queue中,然后串行执行
楼上说的索引加速应该是指这个吧,不是语句并行。
不支持