Angenommen, die Standardreihenfolge einer MySQL-Tabelle (ISAM) durch die Ausführung geändert wird:Standardsortierreihenfolge in MySQL (ALTER TABLE ... ORDER BY ...;)
ALTER TABLE tablename ORDER BY columnname ASC;
Fortan , bin ich garantiert, um Datensätze abgerufen aus der Tabelle in der Reihenfolge von "Spaltenname ASC" vorausgesetzt, keine "ORDER BY" ist in meinen Abfragen angegeben (zB "SELECT * FROM Tabellenname WHERE ... LIMIT 10;")?
Gibt es irgendwelche Eckfälle, die ich beachten sollte?
Update # 1: Vielen Dank an Quassnoi, der richtig darauf hingewiesen hat, dass INSERTs und DELETEs die Reihenfolge durcheinander bringen. Dies führt mich zu folgenden zusätzlichen Fragen:
- Was ist mit UPDATEs? Angenommen, es werden keine INSERTs oder DELETEs an die Tabelle vorgenommen, sondern nur Aktualisierungen - ist die Sortierreihenfolge intakt?
- Angenommen, INSERTs und DELETEs werden gemacht - wie kann ich die Sortierung wieder aufbauen, sagen wir einmal am Tag (in diesem speziellen Fall ändert sich die Tabelle nur täglich, also sollte sie täglich nach den Änderungen neu aufgebaut werden!)). Repariert REPARATUR TABELLE oder muss ALTER TABLE ... ORDER BY erneut hinzugefügt werden?
Vielen Dank für Ihre schnelle Antwort. Ich habe zwei weitere Fragen hinzugefügt, die sich auf Ihre Antworten beziehen. – knorv
@Quassnoi Ich habe ALTER TABLE ... ORDER BY und dann einige Datensätze gelöscht, meine Tabelle nicht massiert ..? Warum das? – Basit
@Basit: Ich weiß nicht – Quassnoi