如何在创建表时让不同的表分区落在相同的节点上

当前存在表t1,数据被hash成4个分区p11,p12,p13,p14。同时创建一张新表t2也被hash到4个分区p21,p22,p23,p24,如何通过强制指定保证p11,p12,p13,p14和p21,p22,p23,p24是在相同的节点上

参考 Placement Rules 功能:https://docs.pingcap.com/zh/tidb/stable/configure-placement-rules#placement-rules-使用文档

这里有网易游戏的实践:https://tidb.net/blog/387bd516

再请教下,多个tiflash实例,表在有多个分区的情况下,通过set tiflash replica 1设置只有一个备份时,多个分区会部署在同一个tiflash节点,还是可能会部署在多个tiflash节点

没有指定放置规则的话,应该是不会考虑多个分区放在同一个节点。因为分区在 TiDB 内部时间会考虑为独立的

如果没有指定 Placement Rule,且单个分区都至少有 100MB 以上数据量时,每个分区内的各个数据都会比较均匀地分布到各个 TiFlash 节点上(即单个 TiFlash 会包含各个分区一部分数据)

有指定分区落在哪个tiflash节点的placement rule示例可以提供下吗

可以参考这个文档: https://docs.pingcap.com/zh/tidb/dev/placement-rules-in-sql#为分区表指定放置规则

不过 placement rules in SQL 目前并不支持 tiflash ,从 6.3 版本开始支持 tiflash。所以目前并不好用 Orz