这里我们想了一下。 可能是是这样的。 如果不在TiDB server层汇总所有rowID,而是采用返回一批rowID直接回表查询,如果这个符合条件的数据在最后一批rowID返回,那么TiDB server会下发很多无效查询,多次的回表查询,这里会网络和磁盘I/O都会爆炸。 当TiDB 拿到所有的rowID他就可以优化这里的查询次数。 像这里就是返回了70W的rowID最终回表只有200行。 这样也确实合理。
这里我们想了一下。 可能是是这样的。 如果不在TiDB server层汇总所有rowID,而是采用返回一批rowID直接回表查询,如果这个符合条件的数据在最后一批rowID返回,那么TiDB server会下发很多无效查询,多次的回表查询,这里会网络和磁盘I/O都会爆炸。 当TiDB 拿到所有的rowID他就可以优化这里的查询次数。 像这里就是返回了70W的rowID最终回表只有200行。 这样也确实合理。