mysql查询语句优化,请问这条语句有还能再优化吗?-灵析社区

霹雳青

需求是查询最近100天的图书浏览数据,根据浏览的图书id分组查询统计前23的查阅量排序 语句为: SELECT ip_times.query ,books.name,books.cover, COUNT(books.id) AS VALUE FROM ip_times,books WHERE (ip_times.path='/GetBookById' AND books.id=ip_times.query AND DATE_SUB(CURDATE(), INTERVAL 100 DAY) <= DATE(ip_times.date)) GROUP BY ip_times.query ORDER BY VALUE DESC LIMIT 23 问题出现的环境背景及自己尝试过哪些方法 我试着修改COUNT(*)为COUNT(books.id),减少到了5秒,但是还想再快点,请问有什么更好的方式呢?谢谢

阅读量:161

点赞量:0

问AI
万码F5GTP6P0
SELECT ip.query, b.name, b.cover, ip.co AS VALUE FROM ( SELECT query, COUNT(ip_times.query) AS co FROM ip_times WHERE DATE_SUB(CURDATE(), INTERVAL 100 DAY) <= DATE(ip_times.date) AND path = '/GetBookById' GROUP BY ip_times.query ORDER BY co DESC LIMIT 23 ) ip LEFT JOIN books b ON ip.query = b.id