我有一个需要很长时间才能执行的查询(1.13 秒)。这两个表user_articles
,并articles
有大约25,000记录。这是查询:
SELECT `user_articles`.*
FROM `user_articles`
INNER JOIN `articles` ON (`user_articles`.`article_id` = `articles`.`id`)
GROUP BY `articles`.`id`
ORDER BY `user_articles`.`created_at` DESC
Run Code Online (Sandbox Code Playgroud)
我发现通过删除ORDER BY
语句可以加快速度(0.003s)。这些是从结果EXPLAIN
+----+-------------+---------------+--------+---------------+------------+---------+-------------+-------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------------+--------+---------------+------------+---------+-------------+-------+----------------------------------------------+
| 1 | SIMPLE | articles | index | PRIMARY | PRIMARY | 4 | NULL | 22678 | Using index; Using temporary; Using filesort |
| 1 …
Run Code Online (Sandbox Code Playgroud)