mysql 优化问题-groupby orderby 对主键分组和排序很慢

oldtwobill 2014-04-11 10:31:43



explain SELECT `Member`.`imei`, `Member`.`time`, `Member`.`id`, `Member`.`version` FROM `members` AS `Member` inner JOIN
`member_time_orders` AS `MemberTimeOrder` ON (`MemberTimeOrder`.`member_id` = `Member`.`id`) WHERE
`Member`.`time` >= 1394553600 AND `Member`.`time` <= 1397231999 AND `MemberTimeOrder`.`datetime` >= 1394553600 AND
`MemberTimeOrder`.`datetime` <= 1397231999 GROUP BY `Member`.`id` ORDER BY `Member`.`id` DESC LIMIT 20

1 SIMPLE MemberTimeOrder range datetime_channel datetime_channel 4 282802 Using where; Using temporary; Using filesort
1 SIMPLE Member eq_ref PRIMARY,time PRIMARY 4 ebook.MemberTimeOrder.member_id 1 Using where
这个语句要5秒钟 请问要怎么优化 我奇怪的是 我对主键排序分组怎么这么慢 我这个主键是有索引的 我发现我对单表主键分组排序的时候还是很快的 但是对联表主键排序 就很慢 我把 GROUP BY `Member`.`id` ORDER BY `Member`.`id` DESC 去掉就很快
...全文
710 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
benluobo 2014-04-12
  • 打赏
  • 举报
回复
你可以试试将查询语句中的inner join 改成 straight join
benluobo 2014-04-11
  • 打赏
  • 举报
回复
执行 show index from Member 贴出结果
oldtwobill 2014-04-11
  • 打赏
  • 举报
回复
d

56,677

社区成员

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

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