Медленное условие в запросе sql?

В таблице с 3 млн. записей. Первый запрос работает очень быстро:
SELECT SQL_NO_CACHE `id`,`users`
FROM `table` WHERE `users` > 3000 ORDER BY `users` DESC LIMIT 0,10

Но стоит добавить условие WHERE `date` IS NULL (по date есть индекс, но в нём половина повторов), как время выполнения падает до 8 секунд.
SELECT SQL_NO_CACHE `id`,`users`
FROM `table` WHERE `date` IS NULL AND `users` > 3000 ORDER BY `users` DESC LIMIT 0,10

explain второго запроса показывает возможные ключи users,date используется users. Тип range, а rows 259 тыс.
Как лучше поступить в этом случае?
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы