Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
数据库引擎如何处理 sql 连接?他们是否应用不同的技术来处理不同类型的连接?举例说明将不胜感激。
查询评估非常复杂。我建议你拿起一本数据库教科书,阅读你最喜欢的 DMBS 文档的查询评估部分。
简而言之,存在 3 种主要类型的算法:单遍、基于循环和基于排序/合并。每个都根据要连接的表中元组的数量、预期的连接元组数量、内存大小和磁盘速度(如果适当调整)、索引的存在以及 DBMS 的规划器有多好来使用.
当要连接的表适合内存时,会发生单次传递。基于循环通常在一个表完全适合内存时完成(它们可以是索引或基于哈希的)。基于排序/合并的连接需要多次传递。
这个 URL 有一些很好的例子:
http://etutorials.org/SQL/Postgresql/Part+I+General+PostgreSQL+Use/Chapter+4.+Performance/Understanding+How+PostgreSQL+Executes+a+Query/
--dmg