SUM,group by和order by在MySQL上查询速度减慢了700多倍

时间:2014-02-09 18:28:14

标签: mysql performance group-by sql-order-by

我正在测试查询的运行速度,因为它会经常运行。我插入了50万张假记录以查看效果。这是查询

SELECT SUM(party_size) AS sump FROM `bookings` USE INDEX(index_group_orderby) 
JOIN users ON users.id=bookings.users_id JOIN restaurants ON restaurants.id=bookings.restaurants_id 
WHERE timestamp BETWEEN '2014-02-01' AND '2014-02-09 23:59' AND users.usertype=1 
AND bookings.made_from=1 AND bookings.status=1 AND restaurants_id=4 
GROUP BY users_id ORDER BY sump

运行约2秒钟。如果我删除SUM,GROUP BY和ORDER BY它运行0.0025秒。 我正在使用users.usertype上的索引和另一个bookings(party_size,timestamp,status restaurants_id,users_id)上的索引。

这是explain,有趣的是MySQL虽然我在查询中写了它,却没有使用bookingsexplain

我的问题是为什么group byorder by使查询慢得多,为什么MySQL不使用索引?

0 个答案:

没有答案