【发布时间】:2013-08-02 17:59:52
【问题描述】:
我有一个非常大的值表。我们称该表为big。我有一张小一点的桌子,叫做small。我想加入这些表格,但仅限于 big 中的特定值。
我可以通过说得到值
SELECT a,b FROM big WHERE foo='bar';
我想用small 加入这个结果,说如下:
SELECT a,b FROM big WHERE foo='bar'
LEFT JOIN (SELECT b as small_b,c,d FROM small) ON big.b=small.small_b
我不想把所有东西都放在big 中,因为那是很多东西,而且需要半分钟。我只需要那个小子集。我该怎么做呢?
编辑:我已编辑查询以匹配末尾的 WHERE 子句。尽管我将其中一张表称为big,但它实际上有不到 500,000 行。我使用的测试用例查询没有使用在big 中找到的任何值(big 在 foo='bar' 处没有值),并且查询仍然花费了 7 多秒。这真的很正常吗?这对我来说似乎非常慢。
【问题讨论】: