Mysql
 sql >> Database >  >> RDS >> Mysql

Qual è l'ordine di selezione predefinito in PostgreSQL o MySQL?

Posso rispondere per MySQL. Non so per PostgreSQL.

L'ordine predefinito non è l'ordine di inserimento, in genere.

Nel caso di InnoDB, l'ordine predefinito dipende dall'ordine dell'indice letto per la query. Puoi ottenere queste informazioni dal piano EXPLAIN.

Per MyISAM, restituisce gli ordini nell'ordine in cui sono letti dalla tabella. Questo potrebbe essere l'ordine di inserimento, ma MyISAM riutilizzerà gli spazi vuoti dopo aver eliminato i record, quindi le righe più recenti potrebbero essere archiviate prima.

Niente di tutto questo è garantito; è solo un effetto collaterale dell'attuale implementazione. MySQL potrebbe modificare l'implementazione nella prossima versione, rendendo diverso l'ordine predefinito dei set di risultati, senza violare alcun comportamento documentato.

Quindi, se hai bisogno dei risultati in un ordine specifico, dovresti usare ORDER BY alle tue domande.