【问题标题】:Compute Cartesian Product Fast like DBMS像 DBMS 一样快速计算笛卡尔积
【发布时间】:2014-02-01 13:18:39
【问题描述】:

我研究了如何有效地计算两个任意集合的笛卡尔积,但我发现如果集合的大小变得很大,解决方案总是效率很低。我的问题是,像 MySQL 这样的数据库语言如何有效地完成这项任务,是否有一种算法或方法可以像数据库语言那样模拟笛卡尔积?

PD:我正在使用 java。

【问题讨论】:

标签: java mysql algorithm cartesian-product


【解决方案1】:

基本上,不 - 如果你想要两组大小的笛卡尔积n,m - 笛卡尔积的大小是n*m - 你需要O(nm) 算法来生成它。

但是,对于数据库语言,当您执行 'join' 之类的操作时,有时您不需要生成整个连接来获得答案 - 如果您稍后要做的只是计算项目数,或总和。
这可以在Pig LatinCOGROUP 运算符中显示,它只创​​建一个隐式连接,以便以后只使用大小或总和 - 而不是真正的笛卡尔积。如果在正确的情况下正确使用,这可能会更有效率。

【讨论】:

    猜你喜欢
    • 2021-02-17
    • 2011-03-24
    • 2017-03-07
    • 2010-11-28
    • 2013-04-20
    • 2021-11-19
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    相关资源
    最近更新 更多