mysql中大表join小表怎么解决shuffle

 时间:2024-10-12 04:06:31

1、本来c和h表的记录条数分别为40000+和10000+,这几乎是两个表做笛卡尔积的开销了(select * from c,h)。

mysql中大表join小表怎么解决shuffle

2、于是我上网查了下MySQL实现join的原理,原来MySQL内部采用了一种叫做 nested loop join的算法。

mysql中大表join小表怎么解决shuffle

3、Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。

mysql中大表join小表怎么解决shuffle

4、如果还有第三个参与 Join,则再通过前两个表的 Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据

mysql中大表join小表怎么解决shuffle

5、如此往复,基本上MySQL采用的是最容易理解的算法来实现join。

mysql中大表join小表怎么解决shuffle

6、所以驱动表的选择非常重要,驱动表的数据小可以显著降低扫描的行数。

mysql中大表join小表怎么解决shuffle
  • 乐多语音app怎样填写邀请码
  • 怎么设置mkvtoolnix-gui字幕默认字符类型
  • 使用nginx代理本地文件夹实现文件服务器
  • intellij idea如何关闭显示工具窗口栏
  • 英魂之刃出装、打法攻略系列1之玉兔
  • 热门搜索
    杭州旅游路线 丽江旅游地图 旅游图片大全 月坨岛旅游 大理旅游地图 悠哉旅游网怎么样 澳大利亚旅游局 去哪里旅游 野三坡旅游攻略 金佛山旅游攻略