В таблице с 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 тыс.
Как лучше поступить в этом случае?