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

Prestazioni MySQL utilizzando AUTO_INCREMENT su una CHIAVE PRIMARIA

Le chiavi primarie vengono spesso utilizzate come sequenza in cui i dati vengono effettivamente archiviati. Se la chiave primaria viene incrementata, i dati vengono semplicemente aggiunti. Se la chiave primaria è casuale, ciò significherebbe che i dati esistenti devono essere spostati per inserire la nuova riga nella sequenza corretta. Un indice di base (non chiave primaria) è in genere molto più leggero nel contenuto e può essere spostato più velocemente con meno spese generali.

So che questo è vero per altri DBMS; Mi permetto di indovinare che MySQL funziona in modo simile sotto questo aspetto.

AGGIORNAMENTO

Come affermato da @BillKarwin nei commenti seguenti, questa teoria non sarebbe valida per le tabelle MyISAM. Come teoria di follow-up, farei riferimento alla risposta di @KevinPostlewaite di seguito (che da allora è stata eliminata), che il problema è la mancanza di AUTO_INCREMENT su una CHIAVE PRIMARIA, che deve essere univoca. Con AUTO_INCREMENT è più facile determinare che i valori sono univoci poiché è garantito che siano incrementali. Con valori casuali, potrebbe essere necessario del tempo prima che l'indice percorri effettivamente l'indice per effettuare questa determinazione.