tiflash 会跟住oltp系统表那边一起做分区吗

我要是在oltp那边做了分区,tiflash这边也会跟着一起做分区吗。我drop掉一个分区,tiflash那边会跟吗?

2赞

tiflash的分区,会不会在统计全量数据的时候导致性能下降?

1赞

你当前遇到的问题是什么?

1赞

tiflash应该是没有分区的概念,你在tikv中drop一个分区,tiflash这边数据也会被删除的

2赞

分区逻辑 TiFlash 和 TiKV 是保持一致的,所以设置了 TiDB 分区表,两边都会分区;drop 的动作也是一致的,都会 drop 掉

2赞

TiFlash 和 TiKV 是保持一致的。

2赞

那这样的话,就是按分区列存,而不是按整表列存的?这么看的话,分区表会降低TiFlash使用性能,对么?

1赞

是不是这么一个概念?


在这个图里面,分区是个逻辑概念,无关物理存储,如果我这个理解正确,分区的话会对命中分区键有缩小扫描范围的作用,其他的我觉得反而没有降低。

2赞

我赞同 数据小黑 的意见

1赞

我们打算将一张表进行range分区。为的就是可以方便的将历史的分区数据drop掉,来释放空间,降低存储成本。但是这张表上的分析需求会很大。所以计划对这张表建tiflash副本。但我担心的问题是,tiflash会不会跟 tikv那边一样是分区的,从而导致我在做分析业务的时候,tiflash这边有跨多分区检索数据的情况,从而导致性能下降。所以想知道tiflash这边是不是也是跟着tikv分区的,还是不分区呢。

1赞

如果tiflash不是跟着分区的,那tiflash怎么能也这么快的把数据一起drop掉呢。

1赞

关于TiFlash是否分区可以参考楼上 @flow-PingCAP 的回答,删除数据是通raft做同步的,我理解和是否有分区没啥关系

1赞

这样的话,tiflash分区和不分区相比,会不会有性能损失的问题,在做分析业务的,需要跨分区的时候?

1赞

从实践角度来讲,6.1版本之前,分区表不能使用mpp引擎,其他的也只能视场景和sql来分析,你一直强调分不分区,我猜你是不是单位底层物理文件分割造成的IO能力下降?如果是这样,有没有考虑过TiFlash本身就是分布式的?底层存储已经按照region分了很多文件。。。

1赞

我对比了两张相同的表,一张分区,一张不分区。发现即使SQL相同,执行计划也是不一样的。所以我判断分区和不分区的执行方式不是完全一致的。但不管怎样,底层物理存储,都是分布式的region。感觉,好像也没啥问题~~,不好说。

2赞

对于分区表和非分区表,我遇到过得问题,例如hash join场景下执行计划不准,造成的oom问题,实际上这个问题是因为对分区表来讲,hash jion时扫描数据是按照分区并发扫描的,因为并发度太高,造成内存回收不及时,导致的溢写磁盘等机制没有发挥作用,这实际上是分区表在异常情况下的一些不好表现,这也不是分区表的性能问题。

4赞