目前有一个客户列表的查询。但是查询效率太慢了,怎么样能提高这个列别的查询效率

女妖精 2017-06-16 10:51:16


每次查询响应时间都在3秒左右



SELECT
h.*,sr1.name oneLevelRegion,(select GROUP_CONCAT(DISTINCT bsa.name separator '<br/>')
from user_account_factory uaf
LEFT JOIN bsp_saleaddress bsa on bsa.placeid = uaf.attrvalue_id
where uaf.saleaddr_id = h.id and bsa.type = 2
) as facName,
sr2.name twoLevelRegion,
sr3.name threeLevelRegion
FROM
bsp_saleaddress h
left join bsp_saleregions sr1 on h.one_level_region = sr1.rid
left join bsp_saleregions sr2 on sr1.rid = sr2.parentid and h.two_level_region = sr2.rid
left join bsp_saleregions sr3 on sr2.rid = sr3.parentid and h.three_level_region = sr3.rid
where
1=1


这个是他的查询语句,我应该怎么做优化呢
...全文
161 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小叮当2017 2017-06-16
  • 打赏
  • 举报
回复
有两个方案: 1)explain一下,看看哪一句比较占资源,可以尝试着加index 2)理解一下,业务要做什么,然后修改一下程序,可以把一句sql变成两句sql,然后在程序中进行拼接。
  • 打赏
  • 举报
回复
这么多看着我都是蒙的, 我建议你先知道他写这个sql做了什么事情。 然后重写吧
女妖精 2017-06-16
  • 打赏
  • 举报
回复
引用 2 楼 m0_37910322 的回复:
有两个方案: 1)explain一下,看看哪一句比较占资源,可以尝试着加index 2)理解一下,业务要做什么,然后修改一下程序,可以把一句sql变成两句sql,然后在程序中进行拼接。
问题圆满解决了,还想说一句explain 很有用

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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