【发布时间】:2010-05-13 21:50:43
【问题描述】:
我有一张大桌子。仅由 3 列组成(id(INT)、bookmarkID(INT)、tagID(INT))。我有两个 BTREE 索引,每个索引分别为 bookmarkID 和 tagID 列。这个表有大约 2100 万条记录。我正在尝试运行此查询:
SELECT bookmarkID,COUNT(bookmarkID) AS count
FROM bookmark_tag_map
GROUP BY tagID,bookmarkID
HAVING tagID IN (-----"tagIDList"-----) AND count >= N
返回结果需要很长时间。我在某处读到,如果创建一个同时包含 tagID、bookmarkID 的索引,我将获得更快的结果。一段时间后我创建了索引。再次尝试查询,但似乎此查询没有使用我创建的新索引。我运行 EXPLAIN 并看到它实际上是正确的。我现在的问题是如何强制查询使用特定索引?也欢迎 cmets 以其他方式使查询更快。谢谢
【问题讨论】:
标签: sql mysql indexing query-optimization