database - n-way sort-merge-join 算法效率

标签 database algorithm sorting

按顺序执行 n 向排序合并连接与执行 2 向排序合并连接相比有优势吗?

是否存在 2 向连接可能更有效的情况?

谢谢!

最佳答案

n 向合并连接需要更少的数据遍历来完成排序。在外部排序的情况下,通过次数乘以每次通过的大小就是您必须执行的 I/O 量。如果您的运行时间受 I/O 限制,那么减少 I/O 绝对是件好事。例如 http://vkundeti.blogspot.com/2008/03/tech-algorithmic-details-of-unix-sort.html指出,出于这个原因,标准的 Unix 排序实用程序会进行 16 路合并。因此,在 1 次通过中,它完成了原本需要 4 次通过的操作,这意味着整个排序的速度是原来的 4 倍。

但是 2 向合并联接更易于编码,并且可以通过更少的比较来解决问题。

关于database - n-way sort-merge-join 算法效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28839095/

相关文章:

c# - ICollectionView 中组内的项目未排序

javascript - Angular js : np-repeat sort

mysql - 在 if 语句中插入的 SQL 问题

sql - 如果没有字段包含字符串,则返回 true 的简短 SQL 命令?

algorithm - 根据给定主题查找相关词

arrays - 如何就地洗牌

Java Lambda 表达式 : incompatible types: bad return type in lambda expression

python - SQLAlchemy 邻接列表 - 约束 Parent_id 不等于 ID

java - 傻瓜数据库

c++ - 递归函数中的for循环在递归结束后继续