Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quel est l'ordre de sélection par défaut dans PostgreSQL ou MySQL ?

Je peux répondre pour MySQL. Je ne sais pas pour PostgreSQL.

L'ordre par défaut n'est généralement pas l'ordre d'insertion.

Dans le cas d'InnoDB, l'ordre par défaut dépend de l'ordre de lecture de l'index pour la requête. Vous pouvez obtenir ces informations à partir du plan EXPLAIN.

Pour MyISAM, il renvoie les commandes dans l'ordre dans lequel elles sont lues à partir de la table. Cela pourrait être l'ordre d'insertion, mais MyISAM réutilisera les espaces après la suppression des enregistrements, de sorte que les nouvelles lignes peuvent être stockées plus tôt.

Rien de tout cela n'est garanti; c'est juste un effet secondaire de l'implémentation actuelle. MySQL pourrait modifier l'implémentation dans la prochaine version, rendant l'ordre par défaut des ensembles de résultats différent, sans violer aucun comportement documenté.

Donc, si vous avez besoin des résultats dans un ordre spécifique, vous devez utiliser ORDER BY sur vos requêtes.