Из документации :
Обратите внимание, что таблица не остается в этом порядке после вставки и удаления
На самом деле, если вы введете SELECT ... ORDER BY
для этой таблицы, опция ALTER TABLE
не избавит вас от filesort
, но вместо этого сделает filesort
намного быстрее.
Сортировка уже упорядоченного набора эквивалентна просмотру этого набора, чтобы убедиться, что все в порядке.
А как насчет ОБНОВЛЕНИЙ? Предположим, что в таблицу не делаются INSERT или DELETE, а только обновления - будет ли порядок сортировки не поврежден?
Если ваша таблица не содержит динамических полей (например, VARCHAR
или 'BLOB'), то , наиболее вероятно MyISAM
, не будет перемещать ее при обновлении.
Я бы не стал полагаться на такое поведение, если бы я строил атомную электростанцию или что-то, за что мне платили.
Предположим, что сделаны INSERT и DELETE - как мне "перестроить" сортировку снова, скажем, раз в день (в этом конкретном случае таблица меняется только ежедневно, поэтому перестройка ежедневно после внесения изменений должна быть в порядке! ). Исправляет ли это REPAIR TABLE или нужно добавить команду ALTER TABLE ... ORDER BY снова?
Вам нужно будет сделать ALTER TABLE ... ORDER BY
.
REPAIR
просто исправляет физическую структуру поврежденной таблицы.