MPP架构
tidb server作为协调者,会把tiflash每个列存region在tiflash之间做交换,让表连接发生在一个tiflash,做到不会垮tiflash做表连接。
每个tiflash都是MPP worker。
MPP不支持非等值join。
2张表都分布在3个tiflash中。
1.数据过滤
首先并行所有tiflash中的表进行sql的过滤条件,并行操作,内存中
2.数据交换
where里a.pid=b.pid,所以在上面过滤完后,对pid进行hash函数算法,hash值相同的a表和b表放在同一个tiflash,让表连接只在一个节点进行。
3.数据join
各个节点并行连接a、b两表。
4.聚合数据交换
对group by的列进行哈希函数算法,让hash(state)不同结果分开。
5.聚合
每个节点得出值,传到tidb server中,聚合。
场景1
Tidb server智能分派,不同业务分流tiflash和tikv。