Informationen zur Auswahl des Uhrzeit-, Datums- und Zeichenfolgentyps in MySQL

Informationen zur Auswahl des Uhrzeit-, Datums- und Zeichenfolgentyps in MySQL

1. Verwendung von DATETIME und TIMESTAMP

Es gibt viele Datentypen in MySQL, die Uhrzeit und Datum darstellen, hauptsächlich YEAR, TIME, DATE, DATETIME, TIMESTAMP usw.

Interviewer fragte: Auswahl zwischen Zeitdatumstyp und Zeichenfolgentyp in MySQL

1. Ähnlichkeiten

Sowohl Datums- als auch Uhrzeitangaben sowie der Zeitstempel können Daten im Format JJJJ-MM-TTHH:MM:SS Jahr-Monat-Tag-Stunde-Minute-Sekunde darstellen.

2. Unterschiede

Die Datums-/Uhrzeitspeicherung hat nichts mit der Zeitzone zu tun (genauer gesagt unterstützt Datum/Uhrzeit nur eine Zeitzone, nämlich die Zeitzone des aktuellen Servers zum Zeitpunkt der Speicherung), während die Zeitstempelspeicherung mit der Zeitzone zusammenhängt.

Die Genauigkeit von Datum und Uhrzeit sowie Zeitstempel beträgt Sekunden. Datum und Uhrzeit sind unabhängig von der Zeitzone und haben einen großen Speicherbereich (1001-9999). Der Zeitstempel ist zeitzonenbezogen und hat einen kleinen Speicherbereich (1970-2038).

3. Auswahl

Abgesehen vom Speicherbereich und der Speichermethode gibt es zwischen TIMESTAMP und DATETIME keinen großen Unterschied. Natürlich ist TIMESTAMP für Geschäfte über Zeitzonen hinweg besser geeignet.

2. Verwendung der Datentypen varchar und text

Beim Speichern von Zeichenfolgen in MySQL können Sie die Typen Char, Varchar oder Text verwenden.

1. Ähnlichkeiten

Sowohl varchar als auch text können Zeichenfolgen mit variabler Länge speichern und die Obergrenze der Zeichenfolgenlänge beträgt 65535 Bytes.

2. Unterschiede

varchar ist schnell, verschwendet keinen Speicherplatz, verarbeitet keine nachstehenden Leerzeichen, hat eine Obergrenze von 65535 Bytes, aber eine Speicherlänge von 65532 Bytes. Wenn die Länge weniger als 255 Byte beträgt, wird 1 Byte zum Speichern der Länge verwendet. Wenn die Länge mehr als 255 Byte beträgt, werden 2 Byte zum Speichern der Länge verwendet. Text, speichert Daten variabler Länge, hat eine niedrige Geschwindigkeit, verschwendet keinen Speicherplatz, verarbeitet keine nachstehenden Leerzeichen, hat eine Obergrenze von 65535 Bytes und verwendet zusätzlichen Speicherplatz zum Speichern der Datenlänge, sodass alle 65535 Bytes verwendet werden können.

Sie können keinen Index für eine TEXT-Spalte platzieren (außer einem Volltextindex). Für Text können Sie nur einen Präfixindex hinzufügen, und die maximale Größe eines Präfixindex beträgt 1000 Byte.

Text hat keinen Standardwert

Wenn varchar größer als ein bestimmter Wert ist, wird es automatisch in Text umgewandelt. Die allgemeinen Regeln lauten wie folgt:

Größer als varchar(255) wird zu tinytext

Größer als varchar(500) wird zu Text

Größer als varchar(20000) wird zu mediumtext

3. Auswahl

1. Verwenden Sie varchar für Felder, die sich häufig ändern;

2. Wenn Sie die feste Länge kennen, verwenden Sie char;

3. Für Daten über 255 Bytes können nur varchar oder Text verwendet werden.

4. Verwenden Sie keinen Text, wo varchar verwendet werden kann.

5. Wenn Sie numerische Felder verwenden können, versuchen Sie, numerische Typen anstelle von Zeichenfolgentypen zu verwenden. Dies verringert die Abfrage- und Verbindungsleistung und erhöht den Speicheraufwand. Dies liegt daran, dass die Engine bei der Verarbeitung der Abfrage und der Verbindung jedes Zeichen in der Zeichenfolge einzeln vergleicht und für numerische Typen nur ein Vergleich ausreicht.

6. Der Einfluss der Speicher-Engine auf die Auswahl von CHAR und VARCHAR:

Für die MyISAM-Speicher-Engine empfiehlt es sich, Datenspalten mit fester Länge anstelle von Datenspalten mit variabler Länge zu verwenden. Dadurch wird die gesamte Tabelle statisch, der Datenabruf wird beschleunigt und Speicherplatz wird gegen Zeit getauscht. Für die InnoDB-Speicher-Engine ist es am besten, Datenspalten mit variabler Länge zu verwenden, da das Speicherformat von InnoDB-Datentabellen nicht zwischen fester und variabler Länge unterscheidet. Daher ist die Verwendung von CHAR nicht unbedingt besser als die Verwendung von VARCHAR. Da VARCHAR jedoch entsprechend der tatsächlichen Länge gespeichert wird, spart es Platz und ist besser für Festplatten-E/A und die gesamte Datenspeicherung.

Dies ist das Ende dieses Artikels über die Auswahl von Zeit- und Datumstypen und Zeichenfolgentypen in MySQL. Weitere relevante Inhalte zur Auswahl von Zeit- und Datumstypen und Zeichenfolgentypen in MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Zusammenfassung gängiger MySQL-Funktionsbeispiele [Aggregatfunktionen, Zeichenfolgen, Zahlen, Zeit- und Datumsverarbeitung usw.]

<<:  Beispielcode zur Implementierung einer dynamischen leuchtenden Spezialeffektanimation von Kreisen mit reinem CSS3

>>:  CnBlogs - Teilen im benutzerdefinierten Blogstil

Artikel empfehlen

Vorgang zur Zeitzonenanpassung im Docker-Container

Wie kann ich überprüfen, ob die Zeitzone des Dock...

HTML ungeordnete Liste Aufzählungspunkte mit Bildern CSS schreiben

Erstellen Sie eine HTML-Seite mit einer ungeordnet...

Node.js+Postman zur Simulation der HTTP-Server- und Client-Interaktion

Inhaltsverzeichnis 1. Node erstellt HTTP-Server 2...

Lösung für das Verschwinden des MySql-Dienstes aus unbekannten Gründen

Lösung für das Verschwinden des MySql-Dienstes au...

js, um einen coolen Feuerwerkseffekt zu erzielen

In diesem Artikel finden Sie den spezifischen Cod...

Implementieren eines binären Suchbaums in JavaScript

Die Implementierung des Suchbinärbaums in JavaScr...

Verwendung des MySQL-Stresstesttools Mysqlslap

1. MySQLs eigenes Stresstest-Tool Mysqlslap mysql...

Zusammenfassung der sieben MySQL JOIN-Typen

Bevor wir beginnen, erstellen wir zwei Tabellen, ...

Implementierung der CSS-Transformation des Seitenumblätter-Animationsdatensatzes

Szenario mit dem Problem des Seitenumblätterns B ...

Detailliertes Tutorial zur Installation von phpMyAdmin unter Ubuntu 18.04

Wir werden phpMyAdmin installieren, damit es mit ...

Allgemeine Überlegungen zum Erstellen eines Hadoop 3.2.0-Clusters

Ein Port ändert sich In Version 3.2.0 beträgt der...

UL-Listen-Tag-Design für Webseiten mit mehrspaltigem Layout

Als ich vor ein paar Tagen ein dreispaltiges Layou...