如何使用join

  • 如果能用到被驱动表的索引,则使用join比拆成多个单表执行的sql来的快
  • 使用join的话,让小表做驱动表
  • 在决定哪个表做驱动表的时候,应该是两个表按照各自的条件过滤,过滤完成之后,计算参与 join 的各个字段的总数据量,数据量小的那个表,就是“小表”,应该作为驱动表。
  • 如果使用Block Nasted-Loop join算法,有可能导致join buffer不够大,导致被驱动表做多次全表扫描,所以在explain的时候Extra字段里面出现Block Nasted-Loop的话,就尽量不要使用join了
  • Index Nasted-Loop join算法:先找出驱动表符合条件的数据,一行一行去被驱动表匹配,最后到结果集中拼接如何使用join
  • Block Nasted-Loop join算法:把满足条件的驱动表数据放入join buffer中,从驱动表中拿数据和join buffer匹配,匹配到的放到结果集
    join buffer 默认是256k,放不下的话,就分段放,分几次,就有几次被驱动表的扫描如何使用join

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-08
  • 2021-09-11
  • 2022-03-05
  • 2022-01-15
  • 2022-01-26
  • 2021-05-30
猜你喜欢
  • 2023-03-30
  • 2021-08-17
  • 2021-08-02
  • 2022-12-23
  • 2021-07-17
  • 2021-12-31
相关资源
相似解决方案