0

数据库引擎如何处理 sql 连接?他们是否应用不同的技术来处理不同类型的连接?举例说明将不胜感激。

4

1 回答 1

1

查询评估非常复杂。我建议你拿起一本数据库教科书,阅读你最喜欢的 DMBS 文档的查询评估部分。

简而言之,存在 3 种主要类型的算法:单遍、基于循环和基于排序/合并。每个都根据要连接的表中元组的数量、预期的连接元组数量、内存大小和磁盘速度(如果适当调整)、索引的存在以及 DBMS 的规划器有多好来使用.

当要连接的表适合内存时,会发生单次传递。基于循环通常在一个表完全适合内存时完成(它们可以是索引或基于哈希的)。基于排序/合并的连接需要多次传递。

这个 URL 有一些很好的例子:

http://etutorials.org/SQL/Postgresql/Part+I+General+PostgreSQL+Use/Chapter+4.+Performance/Understanding+How+PostgreSQL+Executes+a+Query/

--dmg

于 2013-04-28T05:30:03.327 回答