请问这个多表联查sql还能怎么优化?

longzl123 2016-12-15 02:20:18
请问这个多表联合查询的sql语句还能怎么优化?现在以查询cpu就会彪很高。

SELECT
o.mobile AS mobile,
o.user_name AS userName,
o.dealer_id AS dealerId,
o.location_id AS locationId,
o.user_ip AS userIp,
CASE
WHEN LENGTH(IFNULL(city.attach_province_id, '')) = 0
THEN city.city_name
ELSE CONCAT(city.attach_province_name,' ',city.attach_city_name)
END AS city,
CONCAT(car.car_name,' ',car.car_year) AS carName,
cs.cs_show_name AS cbName,
cs.mb_Name AS bsName,
o.car_id AS carId,
DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%s') AS createTime,
o.update_by AS updateBy,
o.STATUS,
o.source,
o.channel,
o.zt,
o.key
FROM car_order o
LEFT JOIN car_city city ON o.location_id = city.city_id
LEFT JOIN (SELECT dealer_short_name, dealer_id FROM car_dealer GROUP BY dealer_id) dealer ON dealer.dealer_id = o.dealer_id
LEFT JOIN car_info car ON car.car_id = o.car_id
LEFT JOIN car_serial cs ON cs.cs_id = car.cs_id
WHERE date_format(o.create_time, '%Y-%m-%d') BETWEEN date_format('2016-12-14', '%Y-%m-%d') AND date_format('2016-12-15', '%Y-%m-%d')

这个是通过explain分析得出的数据截图
...全文
366 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你好,关于 jsp页面组合排序 先后怎么判断 你是怎么实现的?能不能把代码发给我一下,十分感谢595491721@qq.com
longzl123 2016-12-15
  • 打赏
  • 举报
回复
引用 2 楼 wangjian0228 的回复:
时间格式之外,嵌套查询建议形成实体表存储去重后的dealer_short_name, dealer_id,效率也会提高很多
想法听不错的,主要是 这张表数据量太大,每次都是第一个用户访问时插入数据,所以搞成一张表存储也需要实时更新。 不过还是非常感谢你!
longzl123 2016-12-15
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
WHERE date_format(o.create_time, '%Y-%m-%d') BETWEEN date_format('2016-12-14', '%Y-%m-%d') AND date_format('2016-12-15', '%Y-%m-%d') o.create_time加索引 改成 o.create_time between ''2016-12-14' and ''2016-12-15'; 字段加函数是走不了索引的
非常有效!从来没这么弄过,一直以为between and效果和>=、<=效果是一样的,需要格式化一下。
致命的西瓜 2016-12-15
  • 打赏
  • 举报
回复
时间格式之外,嵌套查询建议形成实体表存储去重后的dealer_short_name, dealer_id,效率也会提高很多
rucypli 2016-12-15
  • 打赏
  • 举报
回复
WHERE date_format(o.create_time, '%Y-%m-%d') BETWEEN date_format('2016-12-14', '%Y-%m-%d') AND date_format('2016-12-15', '%Y-%m-%d') o.create_time加索引 改成 o.create_time between ''2016-12-14' and ''2016-12-15'; 字段加函数是走不了索引的

56,673

社区成员

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

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