这条SQL语句怎么优化,马上给分

swanmarx 2003-09-04 08:01:02
select room.id as id ,room.roomid as roomid ,device.wychargemeterdeviceid as bh ,record.valuediff as actualvalue,record.approtion as approtion,record.value as value ,record.meterdevicerecordid as meterdevicerecordid ,device.chargemeterdeviceid as chargemeterdeviceid ,
device.beishu as bs , param.lowdegree,param.firstrange,param.secondrange,param.thirdrange,
param.neededcalculatefee ,param.normalprice,param.firstrangeprice,param.secondrangeprice,param.thirdrangeprice , record.addvalue as addvalue from wy_room as room inner join jf_chargemeterdevice as device using(id)
inner join jf_chargemeterparam as param using (chargemeterparamid)
left join jf_chargemeterdevicerecord as record on(device.chargemeterdeviceid=record.chargemeterdeviceid
and param.chargemeterparamid = record.chargemeterparamid )
left join jf_calculaterecord as cal using (calserial)
where room.buildingareaid='0613021207_1000000000000002462' and room.buildingid='0724044445_1000000000000031287'
and device.type='电表' and cal.calserial '0918094046_1000000000000053836' order by room.roomid

求教高手,这条语句怎么优化?
数据量少的时候,没有问题,数据多时CPU跑到100%,这是怎么拉

高手帮帮我好吗?解决马上给分
先谢谢啦

...全文
30 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
alamb 2003-09-04
  • 打赏
  • 举报
回复
where里面的几个字段都可以考虑建立索引。
ezhou 2003-09-04
  • 打赏
  • 举报
回复
建议对各id,各chargemeterparamid 建索引。
swanmarx 2003-09-04
  • 打赏
  • 举报
回复
不好意思,前面的不清楚
select
room.id as id ,
room.roomid as roomid ,
device.wychargemeterdeviceid as bh ,
record.valuediff as actualvalue,
record.approtion asapprotion,record.value as value ,
record.meterdevicerecordid as meterdevicerecordid ,
device.chargemeterdeviceid as chargemeterdeviceid ,
device.beishu as bs ,
param.lowdegree,
param.firstrange,
param.secondrange,
param.thirdrange,
param.neededcalculatefee ,
param.normalprice,
param.firstrangeprice,
param.secondrangeprice,
param.thirdrangeprice ,
record.addvalue as addvalue
from
wy_room as room
inner join jf_chargemeterdevice as device using(id)
inner join jf_chargemeterparam as param using (chargemeterparamid)
left join jf_chargemeterdevicerecord as record
on (device.chargemeterdeviceid=record.chargemeterdeviceid
and param.chargemeterparamid = record.chargemeterparamid )
left join jf_calculaterecord as cal using (calserial)
where
room.buildingareaid='0613021207_1000000000000002462'
and room.buildingid='0724044445_1000000000000031287'
and device.type='电表'
and cal.calserial ='0918094046_1000000000000053836'
order by
room.roomid

高手救救我。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧