Это кажется довольно простым во всем, кроме MySQL.
В основном мне нужно переключить какой тип индекса я использую вместе с несколькими другими условиями, основанными на том, сколько результатов возвращает определенный термин.
Что-то вроде:
IF (SELECT COUNT(*) FROM table WHERE term LIKE "term") > 4000
EXECUTE QUERY A
ELSE
EXECUTE QUERY B
Возможно ли это в инструкции MySQL?
EDIT:
Запрос A:
SELECT id
FROM table_a
FORCE INDEX(id)
JOIN table_b ON table_a.id = table_b.id
WHERE term LIKE "term"
ORDER BY date
LIMIT 100;
Запрос B:
SELECT id
FROM table_a
FORCE INDEX(term)
JOIN table_b ON table_a.id = table_b.id
WHERE term LIKE "term"
GROUP BY term # These lines would be included for a few conditions not mentioned above.. but are necessary
HAVING COUNT = 1 # same...
ORDER BY date
LIMIT 100;
Причиной для переключателя запросов я получаю резко разные времена результата, основанные на популярности "термина".