From documentation:
Note that the table does not remain in this order after inserts and deletes
Actually, if you issue SELECT ... ORDER BY
to this table, the option to ALTER TABLE
won't spare you of filesort
, but instead make filesort
much faster.
Sorting an already ordered set is equivalent to browsing this set to ensure everything is OK.
What about UPDATEs? Assume that no INSERTs or DELETEs are made to the table, but only updates - will the sort order be intact?
If your table does not contain any dynamic fields (like VARCHAR
or 'BLOB'), then most probably MyISAM
will not move it when updating.
I would not rely on this behavior, though, if I were building a nuclear power plant or something I get paid for.
Assume that INSERTs and DELETEs are made - how do I "rebuild" the sorting again, say once a day (in this specific case the table only changes daily, so rebuilding it daily after the changes are done should still be OK!). Does REPAIR TABLE fix it, or must add do ALTER TABLE ... ORDER BY again?
You'll need to do ALTER TABLE ... ORDER BY
.
REPAIR
just fixes the physical structure of a corrupted table.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…