при INSERT не заполняется индекс (?)

fender

Новичок
при INSERT не заполняется индекс (?)

столкнулся с такой проблемой:
после вставки в только что созданную таблицу, имеющую индекс по одному из полей, делаю запрос
Код:
 show indexes from table;
В возвращаемом результате вижу инфу об этом индексе, но в поле CARDINALITY наблюдаю NULL, в то время как для остальных индексов это поле содержит цифры похожие на кол-во записей).
Пересоздаю индекс (drop -> create) - CARDINALITY заполняется кол-вом записей
После пересоздания запросы с участием этой таблицы стали выполняться в 2 раза быстрее

Почитав документацию, решил что того же эффекта вроде бы можно достичь , не пересоздавая индекс, а используя analyze после вставки.

Вопрос в чем, неужели нужно действительно каждый раз так делать? Сомневаюсь, все-таки мне кажется где-то я допустил ошибку. Должен же был заполниться индекс? или он заполнился но оптимизатор об этом не узнал?

Any ideas?
Если инфы мало, выложу example-скрипты
 

alpine

Новичок
fender
Сталкивался с похожей проблемой, правда очень давно на версии 4.0.х, лечится OPTIMIZE TABLE.

-~{}~ 11.08.07 11:42:

Было бы не плохо, если бы ты привел версию MySQL и SQL запросы, чтобы это повторить.
 

fender

Новичок
версия 5.0.37
демо-запросы постараюсь подготовить если сам не разберусь
то что оно лечится - это понятно, непонятно почему сразу после первой вставки именно для этой таблицы это не происходит автоматом
 
Сверху