Heim > Datenbank > MySQL-Tutorial > Ist die Integer-Indizierung für große Datensätze schneller als die DateTime-Indizierung?

Ist die Integer-Indizierung für große Datensätze schneller als die DateTime-Indizierung?

Susan Sarandon
Freigeben: 2024-11-02 11:36:02
Original
853 Leute haben es durchsucht

 Is Integer Indexing Faster Than DateTime Indexing for Large Datasets?

MySQL-Indexvergleich: Ganzzahl vs. DateTime

Während in früheren Diskussionen die Feldtypen Timestamp und DateTime ohne Indizierung verglichen wurden, konzentriert sich diese Untersuchung speziell darauf die Leistung von DateTime mit Index im Vergleich zu int mit Index in InnoDB-Tabellen mit Millionen von Datensätzen.

In diesen Szenarien Abfragen mit Kriterien basierend auf:

  1. DateTime mit Index: Nutzen Sie den Index für die DateTime-Spalte.
  2. int mit Index: Nutzen Sie den Index für die Ganzzahldarstellung (UNIX-Zeitstempel) des DateTime-Werts.

Empirische Auswertung

Erste Tests mit MySQL 5.1.41 und 10 Millionen Datensätzen zeigen einen bemerkenswerten Geschwindigkeitsvorteil für int:

Query DateTime with Index (sec) int with Index (sec)
COUNT(*) 120.27 25.02
BETWEEN 8.41 1.56

Erklärung

Die Effizienz von int wird auf die Tatsache zurückgeführt, dass der Index direkt mit den Abfragekriterien verglichen werden kann, sodass MySQL keine Daten analysieren und konvertieren muss. Im Gegensatz dazu erfordert DateTime eine zusätzliche Verarbeitung, um die Datums- und Zeitkomponenten zu extrahieren und zu vergleichen.

Zusätzliche Überlegungen

Nachfolgende Tests mit beiden in derselben Tabelle gespeicherten Feldtypen ergaben ähnliche Ergebnisse Leistung, was darauf hindeutet, dass MySQL Abfragen optimieren kann, indem es die Äquivalenz von DateTime- und int-Werten erkennt.

Schlussfolgerung

Basierend auf diesen Ergebnissen wird empfohlen, Datums- und Uhrzeitangaben zu speichern als int (UNIX-Zeitstempel), wenn die Leistung indexbasierter Abfragen im Vordergrund steht. Diese Optimierung kann die Ausführungszeit von Abfragen erheblich verkürzen, insbesondere in großen Datenbanken mit häufigen datumsbasierten Kriterien.

Das obige ist der detaillierte Inhalt vonIst die Integer-Indizierung für große Datensätze schneller als die DateTime-Indizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage