Heim >Datenbank >MySQL-Tutorial >INT vs. VARCHAR-Primärschlüssel in MySQL: Beeinflusst der Datentyp wirklich die Leistung?

INT vs. VARCHAR-Primärschlüssel in MySQL: Beeinflusst der Datentyp wirklich die Leistung?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-18 08:53:10760Durchsuche

INT vs. VARCHAR Primary Keys in MySQL: Does Data Type Really Impact Performance?

Auswirkungen von INT- und VARCHAR-Primärschlüsseln auf die Leistung in MySQL

Die Debatte um die optimale Wahl zwischen INT und VARCHAR als Primärschlüssel als Referenz Listen in MySQL waren ein Diskussionsthema unter Entwicklern. Einige argumentieren, dass INT aufgrund seiner numerischen Natur eine überlegene Leistung bietet, während andere davon ausgehen, dass VARCHAR eine direkte Darstellung referenzierter Informationen bietet.

Um dieses Problem zu beheben, haben wir einen umfassenden Leistungstest für verschiedene Tabellenkonfigurationen und Abfragetypen durchgeführt. Unsere Ergebnisse deuten darauf hin, dass es bei der Verwendung für Referenzlisten einen vernachlässigbaren Leistungsunterschied zwischen INT- und VARCHAR-Primärschlüsseln gibt.

Experimenteller Aufbau

  • Systemspezifikationen: Intel® Core ™ i7-7500U CPU bei 2,70 GHz × 4, 15,6 GiB RAM, 148,6 GB SSD Laufwerk
  • MySQL-Version: Ver 14.14 Distrib 5.7.20, für Linux (x86_64)
  • Tabellen: 6 Tabellen, erstellt mit INT (10), CHAR(6) und VARCHAR(63)-Daten Typen als Primärschlüssel, mit und ohne Indizes für eine andere Spalte (meinindex)

Testverfahren

  • 10 Millionen Zeilen in jede Tabelle eingefügt
  • Ausführung der count(*)-Abfrage bei jede Tabelle verwendet myindex als Filter
  • Messung der Ausführungszeit mit BENCHMARK() Funktion

Ergebnisse

Table Name Time (sec)
jan_int 21.30
jan_int_index 18.79
jan_char 21.70
jan_char_index 18.85
jan_varchar 21.76
jan_varchar_index 18.86

Wie in der Tabelle oben dargestellt, waren die Abfrageausführungszeiten in allen sechs Tabellenkonfigurationen praktisch identisch, sowohl mit als auch ohne Indizes .

Schlussfolgerung

Unsere experimentellen Ergebnisse legen dies nahe, für das Spezifische Im Anwendungsfall Referenzlisten gibt es keinen signifikanten Leistungsunterschied zwischen der Verwendung von INT und VARCHAR als Primärschlüssel in MySQL. Folglich kann die Wahl zwischen den beiden Datentypen von anderen Faktoren geleitet werden, wie beispielsweise der Klarheit und Wartbarkeit des Datenmodells.

Das obige ist der detaillierte Inhalt vonINT vs. VARCHAR-Primärschlüssel in MySQL: Beeinflusst der Datentyp wirklich die Leistung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn