【发布时间】:2016-01-02 13:34:15
【问题描述】:
我想提高这个查询的性能,现在需要 13 秒才能返回结果。
主表有超过 2,000,000 条记录。结果仅包含 34 条记录。这些表在r.date_gps 上有索引。
SELECT
r.id,
c.name,
CONCAT(v.title, '', v.plaque) AS title,v.type_vehicle,
r.sn,
r.lat,
r.lng,
r.direction,
r.date_db,
r.date_gps,
r.volt_main,
r.speed,
r.ing,
t.sat_fix,
r.sat
FROM registers r
JOIN trackers t ON t.cod = r.sn
JOIN installations i ON t.id = i.trackers_id
JOIN vehicles v ON v.id = i.vehicles_id
JOIN clients c ON c.id = v.clients_id
WHERE r.date_gps = (
SELECT MAX(rr.date_gps) FROM registers rr WHERE r.sn = rr.sn
)
AND c.management_id = p_management
GROUP BY r.sn
ORDER BY r.date_gps DESC;
【问题讨论】:
-
你检查解释计划了吗?
-
请在问题中添加查询执行计划。