SELECT a.id,a.serialNumber,a.nickName,a.latitude,a.longitude,a.online,a.alarmStatus,IFNULL(b.groupId,-1) groupId
FROM t_lamp a
LEFT JOIN t_lamp_group_relation b ON a.id = b.lampId
LEFT JOIN t_loop_line c ON a.lineId = c.id
WHERE a.projectId = 10018
请问这条sql可不可以优化啊 8W多数据查询要两秒多
//字段为了省事用 * 了
select * from
(select * from t_lamp l where l.projectId = 10018 ) a
LEFT JOIN t_lamp_group_relation b ON a.id = b.lampId
LEFT JOIN t_loop_line c ON a.lineId = c.id
projectId 加个索引,如果是主键就不用建
同理 lampId 加个索引,如果是主键就不用建
不至于呀,也没查什么,不行外键加索引吧
lampId有索引吗、lineId有索引吗?projectId有索引吗?
lampId lineId作为外键了,怎么能不建索引?
先用 explain 查询一下你那条查询语句的执行计划,看看是不是全表扫描,然后projectId 加索引试试
你这是一次吧四万多条数据全返回了吗?这么多数据一次返回IO的时间也要几秒啊