所以我有两张桌子:

| id     | make      | model        | color    |
| 1234   | BMW       | M2           | blue     |
| 2345   | Audi      | A3           | black    |


| id     | date       | price       |
| 1234   | 2015-09-23 | 34000       |
| 1234   | 2015-10-23 | 33500       |

第一张桌子上有50万辆独特的汽车。第二张桌子有几天每天的车的价格(以后会更多)
现在我要执行一个简单的join语句:
SELECT        count(v.id)
FROM          nm_voertuig v
JOIN          nm_voertuig_statistieken vs
ON            v.id = vs.id
WHERE         model = 'BRZ'

如果我很快删除连接,但是使用连接,加载大约需要20秒。
我试图添加一些索引。但似乎没用。
我做错什么了?
编辑
以nm_voertuig为单位的索引:
https://gyazo.com/cd1628862574ee3c7beb0520484819cc
编辑2
这是解释的结果:
https://gyazo.com/18c1ad77718e8cdf9d19a3846cc4472c

最佳答案

@沃特登欧登:
我看到你的查询使用了索引。
试试这个:首先快速计数,只加入一行而不是全部。

SELECT cnt.*, vs.* FROM (
    SELECT        count(v.id), id
    FROM          nm_voertuig v
    WHERE         model = 'BRZ'
  ) AS cnt
JOIN          nm_voertuig_statistieken vs
ON            cnt.id = vs.id;

如果对你有用请告诉我

08-06 17:53