所以我有两张桌子:
| 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;
如果对你有用请告诉我