TIDB 是否存在 “”全局表“”设置

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

TIDB 是否支持设置某几张表关联表都分布相同的tikv
在某个kv 即完成查询,避免跨节点查询或者汇总

这种设置同TiDB的内在机制相冲突吧?
由于每个三副本regoin独立地选择自己的Leader,即使初始设置是在一个TiKV服务器上,但逐渐地Leader也会分布到不同的TiKV服务器上的。

描述的应用环境更像是OLAP应用,那么用TiFlash,跑MPP就可以了。

目前应该没有这种设置。但是我觉得你的想法非常好,实际上经常关联查询的表应该采用相同的存储策略应该会带来更好的关联查询性能。另外,大表关联没法算子下推可能会带来的OOM问题可能也会因此避免。当然了,这个存储规划问题可能是个两难问题,如果在PD引入AI模块来解决这种规划问题应该是比较好的。
但目前应该是做不到,现在很多机房内部都是万兆网络+SSD,这种相同存储策略希望解决的数据传输问题可能并没有想象的那么耗时。另外,我们还需要考虑算子下推本身就能对关联表查询有一定的优化作用。假如表都在同一个tikv节点,算子都下推到同一台机器计算,可能效果反而不好。

1 个赞

tidb的表关联在tidb server节点处理的,tikv就算把数据放一起,也没实际意义,反而会出现读写热点

没这个

没用,比如一个TiFalsh可以,但是不是你理想中的那样;TIDB是类似分片集群那样,可以指定分片键

想到了label 当时你这种情况 ,可行,但是不符合分布式的优势。

目前不支持

万一有别的业务不是要这几张表关联,而是其中某些表与其它表关联,那最后的结果还不是都被打散了!?

可以通过 Placement Rules in SQL,指定某个表指定存放的位置。https://docs.pingcap.com/zh/tidb/stable/placement-rules-in-sql#placement-rules-in-sql

像更快,还是分开查快,想做资源管控,还是用高版本做隔离吧

没有这个

placement policy 可以设置的

没有全局表的。。。是mycat,dble等数据库中间件有这个概念

placement rules in sql 配置,不过这样弄了也没太大用,即便不跨节点了 依然是分布式事务

2 个赞

没有本地事务,tidb 是分布式事务。:relieved:

1 个赞

如果是大家都要用的字典表。
可以用缓存表。

https://docs.pingcap.com/zh/tidb/stable/cached-tables#缓存表

直接把小表缓存在tidb的内存中,以提高读取访问性能。

事务,全局表没有吧

不知道有没有可以设置复制表的。把小表建成复制表,在做分析处理时也可以做到,不用跨机器关联。这个应该和tidb架构不冲突