只是好奇,如果有可能讓這個查詢更快?或者如果有其他類似的查詢可以更好地工作?可能使此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