INT vs. VARCHAR-Primärschlüssel: Mythenzerstörung über Leistungsbedenken
Die Wahl zwischen INT- und VARCHAR-Primärschlüsseln in MySQL wird seit langem diskutiert, insbesondere bezüglich Referenzlisten. Während INT die traditionelle Wahl ist, erfreut sich VARCHAR aufgrund seiner Fähigkeit, Informationen direkt darzustellen und möglicherweise den Bedarf an JOINs zu reduzieren, wachsender Beliebtheit.
Dieser Artikel zielt darauf ab, die Auswirkungen der Verwendung von INT- und VARCHAR-Primärschlüsseln auf die Leistung zu untersuchen in einem bestimmten Anwendungsfall: Referenzlisten wie US-Bundesstaaten und Ländercodes.
Benchmark Ergebnisse
Um den Leistungsunterschied zu beurteilen, wurde eine Reihe von Benchmarks mit einem Setup durchgeführt, bestehend aus:
Es wurden zwei Tabellensätze erstellt: INT-Tabellen und VARCHAR-Tabellen, jeweils indiziert und nicht indiziert. Die Tabellen wurden dann mit 10 Millionen Zeilen gefüllt und eine Benchmark-Abfrage wurde für jede Tabelle ausgeführt, um die Zeit zu messen, die zum Abrufen einer bestimmten Zeile erforderlich war.
Benchmark-Abfrageausführungszeiten
Die Ausführungszeiten der Benchmark-Abfrage sind wie folgt:
Analyse
Die Ergebnisse zeigen, dass der Leistungsunterschied zwischen INT- und VARCHAR-Primärschlüsseln für Referenzlisten minimal ist. Die Ausführungszeiten der Benchmark-Abfragen liegen innerhalb weniger hundert Millisekunden voneinander, unabhängig davon, ob der Schlüssel indiziert ist oder nicht.
Dies deutet darauf hin, dass die Leistungsvorteile der Reduzierung von JOINs mithilfe eines VARCHAR-Primärschlüssels durch die zusätzlichen ausgeglichen werden Mehraufwand für die Speicherung von Daten variabler Länge.
Schlussfolgerung
Basierend auf den Benchmark-Ergebnissen kann eine Schlussfolgerung gezogen werden dass bei Referenzlisten wie US-Bundesstaaten und Ländercodes die Wahl zwischen INT- und VARCHAR-Primärschlüsseln in erster Linie eine Frage der Präferenz und nicht der Leistung ist. Der Leistungsunterschied ist vernachlässigbar und andere Faktoren wie Datenkonsistenz und zukünftige Skalierbarkeit können die Entscheidung beeinflussen.
Das obige ist der detaillierte Inhalt vonINT- oder VARCHAR-Primärschlüssel für Referenzlisten: Spielt die Leistung wirklich eine Rolle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!