Что делать с неэффективным индексом? - MySQL

Узнай цену своей работы

Формулировка задачи:

В таблице 3 миллиона записей. Есть поле DATE если проверка была - в нём дата проверки, если не было то NULL Запрос
SELECT `id`,`users` FROM `users` WHERE `date` IS NULL LIMIT 500000,10
отрабатывает от 8 до 13 секунд что всё равно очень много. Индекс на поле date есть и explain показывает что он используется, в графе rows указано 1548101 т.е. столько записей в таблице сейчас с date=NULL Как быть в этом случае? Переделывать скрипт на использование вообще других столбцов для выборки?

Решение задачи: «Что делать с неэффективным индексом?»

textual
Листинг программы
CREATE bitmap INDEX index_name ON TABLE_NAME (column_name);

Объяснение кода листинга программы

  1. Создание индекса: CREATE bitmap INDEX index_name ON TABLE_NAME (column_name);
  2. Индекс называется index_name.
  3. Тип индекса - bitmap.
  4. Индексируется столбец column_name в таблице TABLE_NAME.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5