Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist die standardmäßige Auswahlreihenfolge in PostgreSQL oder MySQL?

Ich kann für MySQL antworten. Ich weiß es nicht für PostgreSQL.

Die Standardreihenfolge ist im Allgemeinen nicht die Reihenfolge des Einfügens.

Im Fall von InnoDB hängt die Standardreihenfolge von der Reihenfolge des für die Abfrage gelesenen Indexes ab. Sie erhalten diese Informationen aus dem EXPLAIN-Plan.

Für MyISAM gibt es Aufträge in der Reihenfolge zurück, in der sie aus der Tabelle gelesen werden. Das vielleicht die Reihenfolge des Einfügens sein, aber MyISAM verwendet Lücken wieder, nachdem Sie Datensätze gelöscht haben, sodass neuere Zeilen möglicherweise früher gespeichert werden.

Nichts davon ist garantiert; es ist nur ein Nebeneffekt der aktuellen Implementierung. MySQL könnte die Implementierung in der nächsten Version ändern und die Standardreihenfolge der Ergebnismengen anders machen, ohne irgendein dokumentiertes Verhalten zu verletzen.

Wenn Sie also die Ergebnisse in einer bestimmten Reihenfolge benötigen, sollten Sie ORDER BY verwenden auf Ihre Fragen.