数据库引擎如何处理sql连接?他们是否应用不同的技术来处理不同类型的连接?将以示例解释。
答案 0 :(得分:1)
查询评估非常复杂。我建议您选择一本数据库教科书,并阅读有关您最喜爱的DMBS文档的查询评估部分。
简而言之,存在3种主要类型的算法:单通道,基于循环和基于排序/合并。根据要加入的表中元组的数量,连接元组的预期数量,内存大小和磁盘速度(如果调整正确),索引的存在以及DBMS的规划者有多好,可以使用每个元组。
当要连接的表适合内存时会发生单次传递。 基于循环通常在一个表完全适合内存时完成(它们可以是索引或基于散列)。 基于排序/合并的连接需要多次传递。
此网址有一些很好的例子:
- DMG