строки в mysql объясняют меньше, чем реальные строки

#mysql

Вопрос:

Есть индекс со столбцом, его имя такое my_index .

 create index my_index
    on table(column );
 

Реальные строки:

 select count(*) from table as b where b.column is not null;
= 31517
 

Строка в пояснениях:

 select count(*) from table as b where b.column is not null;
 
ID select_type стол перегородки Тип возможные ключи Клавиша key_len ссылка строки отфильтровано Дополнительный
1 простой b диапазон my_index my_index 99 24294 100 Использование где; Использование индекса

Интересно, почему строки в объяснении (24294) меньше, чем реальные строки (31517)

После АНАЛИЗА ТАБЛИЦЫ

 ANALYZE TABLE Table
explain select count(*) from table as b where b.column is not null;
 
ID select_type стол перегородки Тип возможные ключи Клавиша key_len ссылка строки отфильтровано Дополнительный
1 простой b диапазон my_index my_index 99 16594 100 Использование где; Использование индекса

24294 => 16594 !!!

Комментарии:

1. Количество показанных строк в пояснении является приблизительным. Обновите статистику таблицы для более точного значения.

2. @Akina Извините, я отредактировал описание .

3. Дайте my_index определение.

4. @Akina Я обновил описание. Это единый индекс для column

5. Похоже, индекс используется не как индекс, а как компактная версия таблицы, и выполняется полное сканирование по этому индексу. Нужен ли этот индекс только для этого запроса, или существует множество запросов, которые выбирают по определенному списку значений или диапазону?