sql >> Database >  >> RDS >> Mysql

Is er een ECHT prestatieverschil tussen de primaire sleutels van INT en VARCHAR?

U maakt een goed punt dat u een aantal samengevoegde zoekopdrachten kunt vermijden door een zogenaamde natural te gebruiken sleutel in plaats van een surrogaatsleutel . Alleen u kunt beoordelen of het voordeel hiervan significant is in uw aanvraag.

Dat wil zeggen, u kunt de query's in uw applicatie meten die het belangrijkst zijn om snel te zijn, omdat ze met grote hoeveelheden gegevens werken of omdat ze heel vaak worden uitgevoerd. Als deze query's baat hebben bij het elimineren van een join, en geen last hebben van het gebruik van een primaire varchar-sleutel, doe het dan.

Gebruik geen van beide strategieën voor alle tabellen in uw database. Het is waarschijnlijk dat in sommige gevallen een natuurlijke sleutel beter is, maar in andere gevallen is een surrogaatsleutel beter.

Andere mensen maken een goed punt dat het in de praktijk zelden voorkomt dat een natuurlijke sleutel nooit verandert of dubbele sleutels heeft, dus surrogaatsleutels zijn meestal de moeite waard.



  1. JDBC-batchbewerkingen begrijpen

  2. Controleer of een tabel een TIMESTAMP-kolom heeft in SQL Server met OBJECTPROPERTY()

  3. Optimalisatie van SQL-query's — Hoe te bepalen wanneer en of het nodig is?

  4. Auto's verhuren is net zo eenvoudig als autorijden:een gegevensmodel voor een autoverhuurbedrijf