共有4个表:
Ids都是按键。
查询必须显示已定义库中包含书籍数量的类别。例如:
图书馆X :
浪漫(50)
黄色(40)
科学(30)
这是我的疑问:
SELECT category.id
, category.name
, count(*) AS tot
FROM bookcorr
JOIN category
ON category.id = bookcorr.category_id
WHERE bookcorr.library_id = 'x'
GROUP BY bookcorr.category_id
ORDER BY tot DESC
并且它仍然很慢,有没有办法让结果更快?
答案 0 :(得分:1)
你对这些表有什么指数?该查询表明bookcorr
应该在(category_id, library_id)
上有索引。
您的查询未使用Books
或Library
...
答案 1 :(得分:1)
更改查询,使其在首要表的列上进行分组,以避免Using temporary
:
SELECT category.id, category.name, COUNT(*) AS tot
FROM category
JOIN bookcorr
ON bookcorr.category_id = category.id
WHERE bookcorr.library_id = 'x'
GROUP BY
category.id
ORDER BY
tot DESC
并确保您在bookcorr (library_id, category_id)