Ci sono già state molte buone risposte a questo che si riducono praticamente a "dipende dalle circostanze" e non posso aggiungere nulla a quelle.
Una cosa che non è stata menzionata, tuttavia, che penso debba essere menzionata, è che non si dovrebbe mai riutilizzare mai le chiavi primarie generate da una sequenza o da un sistema AUTO_INCREMENT.
Quando si elimina un elemento a cui è stata assegnata una chiave primaria da un sistema di questo tipo, nella colonna della chiave primaria rimangono dei vuoti, lasciati dai dati cancellati. C'è una grande tentazione di riassegnare queste lacune a nuovi elementi man mano che vengono aggiunti o, peggio ancora, di mescolare i dati esistenti per dargli un nuovo ID per rimuovere gli spazi vuoti, ma così facendo daranno origine a problemi che mai avere a che fare se hai appena lasciato le chiavi da solo.
Supponiamo che tu mantenga un database di stampanti per la gestione dei materiali di consumo di riordino. La stampante 13, una vecchia stampante laser, si rompe al di là della riparazione economica, quindi la butti fuori. Nel frattempo, per una ragione non correlata, qualcuno ordina una nuova stampante termica per fare la stampa di codici a barre nel magazzino e quella stampante arriva prima della sostituzione della stampante 13. L'amministratore registra quella nuova stampante nel database e, poiché 13 è ora libera e stai riciclando gli ID, la nuova stampante termica viene assegnata 13 come ID.
Ora qualcuno ti dice che la stampante 13 è quasi senza inchiostro. Ti ricordi che la stampante 13 è una stampante laser, quindi non ti preoccupare di cercarlo nel database e devi ordinare un toner. Solo tu hai effettivamente bisogno di ordinare un pacchetto di inchiostro termico perché la stampante 13 non è più una stampante laser. Quando arriva la cartuccia del toner, non è possibile utilizzarlo perché è la ricarica di inchiostro sbagliata per la stampante, non è possibile stampare altri codici a barre e non è possibile spedire alcun ordine in attesa di essere spedito.
Peggio ancora, cosa succede se elimini la stampante 13 e mischia tutte le stampanti che vengono dopo di essa per riempire il vuoto? La stampante 14 (una vecchia matrice di punti decrepita) diventa la stampante 13, la stampante 15 diventa la stampante 14 e così via.
Tutte le stampanti hanno etichette su di esse in modo che possano essere incrociate con il database, ma ora tutte le etichette non sono aggiornate. Dovrai andare in giro, localizzare tutte le stampanti del business (che potrebbero essere incluse in centinaia!) E relabelarle. Non è un uso efficace del tempo. Ed è anche un processo soggetto a errori e cosa succede se non viene mai fatto? Qualcuno chiama per dire che la stampante 14 si è guastata e ha bisogno di essere riparata con urgenza, quindi lo si guarda e si scopre che la stampante 14 è una stampante a getto d'inchiostro in ricezione. Solo perché hai rimescolato gli ID, è in realtà la stampante ad aghi che ha bisogno di essere riparata con urgenza. Il tizio che ha chiamato il problema è rimasto appeso, mentre l'addetto alla reception ha un addetto al supporto tecnico che non ha mai chiamato per montare una stampante che non sia rotta.
Si dovrebbe pensare agli ID assegnati da un sistema di auto-incremento come permanenti, che sono immutabili e non possono essere riutilizzati, anche se la cosa a cui si riferisce l'ID cessa di esistere. Alcune persone sostengono di non voler preoccuparsi degli ID in via di esaurimento, ma anche con i sistemi a 32 bit e gli ID firmati, sono ancora disponibili circa 2 miliardi di ID. Se è possibile rendere la colonna ID senza segno, questo raddoppia a 4 miliardi e nei sistemi a 64 bit il numero di ID disponibili è letteralmente maggiore del numero di stelle nel cielo. Non hai intenzione di rimanere senza ID.