暂无图片
MySQL里多表join中MySQL里用到的方式有哪些?
我来答
分享
小七
2022-09-22
MySQL里多表join中MySQL里用到的方式有哪些?

Hash loop

Batched Key Access

Index Nested-LoopJoin

Block Nested-Loop

Nested-Loop Join

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
哇哈哈

C Index Nested-LoopJoin

D Block Nested-Loop

E Nested-Loop Join

暂无图片 评论
暂无图片 有用 1
打赏 0
超越无限D
2022-09-22
longlongago7777
2022-12-02
X
chengang

ABCDE 都有吧。

A 是8.x版本才有的

D 是在没有索引的情况下 对E的优化

C 是有索引的情况下 对E的优化

B 是再次对C的一种优化方式。 但一般很少开启。因为排序同样也有成本开销。

暂无图片 评论
暂无图片 有用 1
打赏 0
张sir
2022-09-22
说的清楚
刘贵宾

B Batched Key Access

C Index Nested-LoopJoin

D Block Nested-Loop

E Nested-Loop Join

暂无图片 评论
暂无图片 有用 5
打赏 0
张sir

A Hash loop=====>准确的应该叫hash join,mysql从8.0开始支持两个表通过hash join进行关联。

B Batched Key Access=====》将外层循环的行/结果集存入join buffer,内层表通过索引访问,并按主键顺序排序,批量提交给存储引擎获取数据。

C Index Nested-LoopJoin=====》当关联字段有索引的时候,可以被当作内表,外表取一行数据,通过内表索引,在内表进行查询。

D Block Nested-Loop=====》将外层循环的行/结果集存入join buffer, 内层循环的每一行与整个buffer中的记录做比较,从而减少内层循环的次数,关联字段无索引。

E  Nested-Loop Join ======》内外两层循环,对外循环中的每条记录,都要再内循环中做一次检索。

以上BCDE均是NL的方法,BC是关联条件有索引的情况,B比C效率高,DE是关联条件无索引的情况。D比E效率高。

暂无图片 评论
暂无图片 有用 3
打赏 0
soul0202

8.0前没有 A hash join 8.0后有的

B Batched Key Access

C Index Nested-LoopJoin

D Block Nested-Loop

E Nested-Loop Join

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL按时间点恢复
回答 1
已采纳
可以使用binlog2sql,一个开源的python工具,用于回放sql,可以指定时间点
MySQL5.6内存升高问题
回答 6
从日志里看不出来什么,这个日志是故障的时候抽取的吗。一般这样问题,都是跟缓存池,全局锁有关。建议升级版本。
mac安装完MySQL需要配置什么吗?
回答 1
已采纳
官方有Mac下安装mysql的dmg安装包:https://dev.mysql.com/downloads/mysql/建议用docker容器方式安装,便于后期调整,别在Mac本机直接安装数据库;
SELECT * FROM a LEFT JOIN b ON a.id IN b.ids 但是b.ids是逗号隔开的字符串,mysql或者mybatis怎么实现in效果并且要走索引?
回答 1
已采纳
b.ids是字符串。这个in语句应该是不行的哦。
ActionDB和OceanBase之间是什么关系?
回答 2
原来ActionDB是基于OceanBase的开源内核开发的,想问一下,ActionDB和OceanBase在日常维护和管理方面有什么区别?比如在备份、恢复、监控等操作上,有没有不同的工具或方法?
MFC向mysql导入导出excel,怎么操作?
回答 4
参考https://blog.51cto.com/u15127555/4024013
mysql用xdevapi的库,传sql语句报错,怎么调测?
回答 1
根据报错信息进行处理
在MySQL数据库中,对于以下索引类型的描述,哪些是正确的?
回答 2
已采纳
ADBTree索引中包含空值,因此可以实现isnull、isnotnull的查询;HASH索引只可用于或<>操作符的等式比较。由于数据不是按顺序存储的,范围查询时无法应用HASH索引。全文
mysql的主从中Seconds_Behind_Master很高,该怎么解决?
回答 2
已采纳
看看我这篇文章吧,总结了一些主从延迟的解决方案:https://www.modb.pro/db/525520
mysql企业版和社区版在性能上有区别吗?
回答 2
已采纳
区别:社区版在技术方面会加入许多新的未经严格测试的特性;而企业版经过严格测试认证,更加稳定、安全、可靠,性能也比社区版好。社区版没有实时图形监控器支持,没有任何技术支持服务;而企业版提供了企业级实时图