我有一个非常大的值表。让我们称之为 table 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 has no value where foo='bar') 中找到的任何值,并且查询仍然花费了 7 秒。这真的很正常吗?对我来说似乎非常慢。