动态表单的场景TiDB是否适用?

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0
  • 【问题描述】: 为了满足动态定制的需求,需要能够支持动态表单,也就是说表单的定义是可以根据需求进行定制,后继还可以增加或者删除字段,同时一个比较重要的能力是可以根据任何一个或者多个字段进行组合筛选。请问这种场景TiDB是否适用,如果适用需要注意什么?

性能优化、故障排查等需要收集“系统/集群信息”的问题,请下载脚本运行。全选终端打印结果,并复制粘贴上传。

描述里面的根据需求定制是指修改表结构吗?后面的增加或者删除字段是支持的。另外根据任何一个字段或者多个字段组合筛选是指使用索引查询还是指定字段来进行查询?

多谢回复! 可能采用的是大宽表的方案,预留100列字符串,50列日期,50列数值;这样表结构是固定的,但是不同表单的字段会动态的映射到不同的列上。这里说的筛选是指按指定字段来进行查询,但是对于同一列,对于不同的表单定义可能代表的意思是不一样的。

TiDB 不支持动态映射,这里提到的大宽表,宽表单行最大多少个字节?

TiDB 的查询要走索引才能保证效率,记录很多的宽表没有索引的话,效率会很低。

最大可能在2M左右,列数最大可能在1500左右

是否可以在每列都增加索引?成本及性能会有什么影响?另外对于字符串的字段,还需要提供模糊搜索的能力,类似like SEARCHTEXT, 这个是否支持。

对于每列都增加索引这对于数据存取时会增加不必要的索引维护成本(包括索引存储,索引数据一致性维护等) 索引的建立建议根据实际 SQL 进行建立,对于可以使用联合索引的,可以考虑使用联合索引

字符串模糊查询是支持的