У меня большой стол. состоит только из 3 столбцов (id (INT), bookmarkID (INT), tagID (INT)). У меня есть два индекса BTREE, по одному для каждого столбца bookmarkID и tagID. Эта таблица содержит около 21 миллиона записей. Я пытаюсь выполнить этот запрос:
SELECT bookmarkID,COUNT(bookmarkID) AS count
FROM bookmark_tag_map
GROUP BY tagID,bookmarkID
HAVING tagID IN (-----"tagIDList"-----) AND count >= N
, который возвращает целую вечность, чтобы вернуть результаты. Я где-то читал, что если создать индекс, в котором он имеет tagID, bookmarkID вместе, я получу намного более быстрый результат. Я создал индекс через некоторое время. Попробовал запрос еще раз, но кажется, что этот запрос не использует новый индекс, который я создал. Я запустил EXPLAIN и увидел, что это действительно так. Мой вопрос сейчас заключается в том, как я могу заставить запрос использовать определенный индекс? также приветствуются комментарии о других способах сделать запрос быстрее. Спасибо