在查询时,驱动表A会根据关联字段的索引进行查找,当在索引上找到符合的值,在回表进行查询,也就是说得匹配到索引后才会才会进行回表查询;星池科技如果非驱动表B的关联关联字段B.id是主键的话,性能会非常高,如果不是主键,会进行多次回表查询,先关联索引,然后根据二级索引的主键id进行回表查询,性能上比主键要慢;
如果有索引,会选取Index Nested-Loop Join进行连表,如果join列没有索引,就会采用Block Nested-Loop Join ,join buffer,在驱动表和非驱动表中间有个buffer的缓冲区,在查询时先将驱动表的数据缓存到buffer缓冲区内,然后批量与非驱动表进行匹配,这是一种将多次比较合并为一次比较的优化方案,注意:这里缓存的不只是关联表的列,select 后面的列也会缓存起来;www.starpool.cn