所以我有两张桌子:
| 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 |
第一张表有大约500000辆独特车辆。第二张表的价格来自每天的车辆几天(将来会更多)
现在我想执行一个简单的连接语句:
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
这是EXPLAIN的结果:
https://gyazo.com/18c1ad77718e8cdf9d19a3846cc4472c
答案 0 :(得分:2)
@Wouter den Ouden:
我已经看到您的查询使用索引。
试试这个:首先加快计数速度,只加入一行而不是全部加入。
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;
请告诉我它是否适合您