只是好奇,如果有可能让这个查询更快?或者如果有其他类似的查询可以更好地工作?可能使此SQL查询更快?
SELECT id,source FROM posts
WHERE id = ANY(SELECT image_id FROM `post_tags` WHERE tag_id = (SELECT id FROM `tags` WHERE tag = _utf8 '$TAG' collate utf8_bin))
AND posts.exists = 'n'
ORDER BY posts.ratecount DESC
LIMIT 0,100
如果不使用:
AND posts.exists = 'n'
ORDER BY posts.ratecount
DESC LIMIT 0,100
它加快了查询到可用的水平,但有些需要这个我在做什么。
- 标签表具有'tag'和'id'的唯一索引。
- 标签有83K行。
- Post_tags有'image_id','tag_id'的唯一索引。也正常指数为每个。
- Post_tags有471K行。
- 帖子有'id'的唯一索引。 “存在”和“费率计算”也是正常的索引。
- 邮政表有大约1.1M行。
你的索引是什么? – dfb 2012-04-16 05:32:40
表格帖子和post_tags中有多少数据?你有所有必要的指标吗? – Tobi 2012-04-16 05:34:17
查询计划显示什么?指数是否被实际使用?用正常的连接重写会有什么不同? (有时候规划人员不知道。)表统计信息已更新?无论如何,将所有信息放在原始帖子中。也可以试试DBA。投票结束为“太本地化”。 – 2012-04-16 05:45:58