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

C'è una VERA differenza di prestazioni tra le chiavi primarie INT e VARCHAR?

Fai bene a evitare un certo numero di query unite utilizzando ciò che viene chiamato natural chiave invece di una chiave surrogata . Solo tu puoi valutare se il beneficio di questo è significativo nella tua domanda.

Cioè, puoi misurare le query nella tua applicazione che sono le più importanti per essere veloci, perché funzionano con grandi volumi di dati o vengono eseguite molto frequentemente. Se queste query traggono vantaggio dall'eliminazione di un join e non risentono dell'utilizzo di una chiave primaria varchar, fallo.

Non utilizzare nessuna delle due strategie per tutte le tabelle nel database. È probabile che in alcuni casi sia meglio una chiave naturale, ma in altri casi è meglio una chiave surrogata.

Altre persone sottolineano bene che è raro in pratica che una chiave naturale non cambi mai o abbia duplicati, quindi le chiavi surrogate di solito valgono la pena.