我有一个非常大的值表。让我们称之为 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 秒。这真的很正常吗?对我来说似乎非常慢。