Почему кардинальность индекса mySQL может измениться с ›0 на null?

Я запускаю mySQL 5.6 на Centos и имею проблемы с производительностью. Было несколько фальстартов при попытке правильно установить кардинальность индексов пустой таблицы. Но как только это было сделано и индексы моих пустых таблиц были установлены правильно (на 0, а не на NULL), я начал задание по заполнению таблиц.

Я периодически проверял и видел, что мощность неуклонно растет. Затем я устроился на другую работу и наблюдал, как цифры продолжают расти. Наконец, я запустил два задания одновременно (и я должен упомянуть, что эти задания взаимодействуют с серверным процессом, который сериализует одновременные запросы через одно соединение с mySQL). Почти сразу же я увидел, что кардинальность начала становиться NULL.

Я мог бы перечислить гораздо больше информации (и перечислю, если спросят), но мне было интересно, есть ли ЛЮБАЯ законная причина для кардинальности индекса, которая внезапно становится нулевой во время вставки таблицы.


person Chap    schedule 08.10.2013    source источник


Ответы (2)


Вы используете myisam? Вам нужно заполнить его командой

Analyze table yourtable 

Чтобы заполнить его, единственный индекс, который mysql создает, - это первичный ключ.

person exussum    schedule 08.10.2013
comment
Да, это мойISAM. Я сделал АНАЛИЗИРУЮЩУЮ ТАБЛИЦУ; Я исправлю свой пост, чтобы описать, что я сделал, чтобы установить количество элементов. - person Chap; 09.10.2013
comment
Во-вторых, я не буду: продолжайте получать сообщение об ошибке, когда я сохраняю свои изменения. - person Chap; 09.10.2013

Количество элементов отображается как NULL после ALTER TABLE ... DISABLE KEYS;

Убедитесь, что ключи включены! ALTER TABLE ... ENABLE KEYS;

person Greg E.    schedule 22.04.2016