Heim Datenbank MySQL-Tutorial Speicheranforderungen für MySQL-Datentypen und Auswahl des richtigen Typs

Speicheranforderungen für MySQL-Datentypen und Auswahl des richtigen Typs

Nov 23, 2016 pm 01:10 PM
mysql

1. Speicheranforderungen für Spaltentypen

Listet die Speicheranforderungen jedes von MySQL unterstützten Spaltentyps nach Kategorie auf.

Die maximale Größe einer Zeile in einer MyISAM-Tabelle beträgt 65.534 Bytes. Jede BLOB- und TEXT-Spalte macht davon nur 5 bis 9 Byte aus.

Wenn die MyISAM-Tabelle Spaltentypen variabler Länge enthält, ist das Datensatzformat ebenfalls längenvariabel. Beim Erstellen einer Tabelle kann MySQL unter bestimmten Bedingungen eine Spalte von einem Typ mit variabler Länge in einen Typ mit fester Länge oder umgekehrt ändern.

Speicheranforderungen für numerische Typen

Speicheranforderungen für Spaltentypen

TINYINT 1 Byte

SMALLINT 2 Bytes

MEDIUMINT 3 Bytes

INT, INTEGER 4 Bytes

BIGINT 8 Bytes

FLOAT(p) Wenn 0 <= p <= 24 ist 4 Bytes, wenn 25 <= p <= 53 ist 8 Bytes

FLOAT 4 Bytes

DOUBLE [PRECISION], item REAL 8 Bytes

DECIMAL(M,D), NUMERIC(M,D) Variable Länge; siehe Diskussion unten

BIT(M) Über (M 7)/8 Bytes

Die Speicheranforderungen für DEZIMAL (und NUMERISCH) sind versionenspezifisch:

verwendet zum Komprimieren das Binärformat 9 Dezimalzahlen (basierend auf 10) in 4 Bytes, um den DECIMAL-Spaltenwert darzustellen. Die Speicherung der ganzzahligen und gebrochenen Teile jedes Werts wird separat festgelegt. Jedes Vielfache von 9 Ziffern erfordert 4 Bytes und die „verbleibenden“ Bits benötigen einen Teil der 4 Bytes. Die folgende Tabelle gibt die Speicheranforderungen für überschüssige Bits an:

Verbleibende Bytes

Anzahl der Bits

0 0

1 1

2 1  

3 2  

4 2  

5 3  

6 3  

7 4

8 4

9 4

Speicheranforderungen für Datums- und Uhrzeittypen

Spaltentyp Speicheranforderungen

DATE 3 Bytes

DATETIME 8 Bytes

TIMESTAMP 4 Bytes

TIME 3 Bytes

YEAR 1 Byte

Speicheranforderungen für String-Typen

Speicheranforderungen für Spaltentypen

CHAR(M) M Bytes, 0 <= M <= 255

VARCHAR(M) L 1 Byte , wobei L <= M und 0 <= M <= 65535 (siehe Hinweis unten)

BINARY(M) M Bytes, 0 <= M <= 255

VARBINARY(M) L 1 Byte, wobei L <= M und 0 <= M <= 255

TINYBLOB, TINYTEXT L 1 Byte, wobei L < 28

BLOB, TEXT L 2 Bytes, wobei L < 216

MEDIUMBLOB, MEDIUMTEXT L 3 Bytes, wobei L < 224

LONGBLOB, LONGTEXT L 4 Bytes, wobei L < 232

ENUM('value1','value2',...) 1 oder 2 Bytes, je nach Anzahl der Aufzählungswerte (bis zu 65.535 Werte)

SET('value1','value2',...) 1, 2, 3, 4 oder 8 Bytes, je nach die Anzahl der Mengenmitglieder (bis zu 64 Mitglieder)

VARCHAR-, BLOB- und TEXT-Klassen sind Typen variabler Länge. Der Speicherbedarf jedes Typs hängt von der tatsächlichen Länge des Spaltenwerts ab (in der vorherigen Tabelle mit L gekennzeichnet), nicht von der maximal möglichen Größe des Typs. Beispielsweise kann eine VARCHAR(10)-Spalte eine Zeichenfolge mit einer maximalen Länge von 10 enthalten. Der tatsächliche Speicherbedarf ist die Länge der Zeichenfolge (L) plus ein Byte, das die Länge der Zeichenfolge aufzeichnet. Für die Zeichenfolge „abcd“ ist L 4 und die Speicherung erfordert 5 Bytes.

Für die Typen CHAR, VARCHAR und TEXT sollten die Werte L und M in der vorherigen Tabelle als Anzahl der Zeichen interpretiert werden, und die Länge dieser Typen in der Spaltendefinition stellt die Anzahl der Zeichen dar. Um beispielsweise einen TINYTEXT-Wert zu speichern, sind L Zeichen 1 Byte erforderlich.

Um die Anzahl der Bytes zu berechnen, die zum Speichern des Werts einer bestimmten CHAR-, VARCHAR- oder TEXT-Spalte verwendet werden, müssen Sie den von der Spalte verwendeten Zeichensatz berücksichtigen. Im konkreten Fall müssen Sie bei der Arbeit mit Unicode bedenken, dass alle Unicode-Zeichen die gleiche Anzahl an Bytes verwenden.

Hinweis: Die effektive maximale Länge einer VARCHAR-Spalte beträgt 65.532 Zeichen.

Die NDBCLUSTER-Engine unterstützt nur Spalten mit fester Breite. Das bedeutet, dass sich VARCHAR-Spalten in Tabellen im MySQL-Cluster wie Typ-CHAR-Spalten verhalten (außer dass jeder Datensatz noch über ein zusätzliches Byte an Speicherplatz verfügt). Beispielsweise belegt in einer Cluster-Tabelle jeder Datensatz in einer als VARCHAR(100) deklarierten Spalte beim Speichern 101 Bytes, unabhängig von der Länge der Zeichenfolge im tatsächlich gespeicherten Datensatz.

BLOB- und TEXT-Klassen erfordern 1, 2, 3 oder 4 Bytes, um die Länge des Spaltenwerts aufzuzeichnen, abhängig von der maximal möglichen Länge der Klasse.

In der NDB-Cluster-Speicher-Engine ist die Implementierung der TEXT- und BLOB-Spalten unterschiedlich, wobei jeder Datensatz in der TEXT-Spalte aus zwei separaten Teilen besteht. Eine davon hat eine feste Größe (256 Byte) und wird tatsächlich in der Originaltabelle gespeichert. Die andere umfasst alle Daten über 256 Byte, die in einer impliziten Tabelle gespeichert sind. Datensätze in der zweiten Tabelle sind immer 2.000 Byte lang. Dies bedeutet, dass bei Größe<= 256 die Größe der TEXT-Spalte 256 beträgt (wobei Größe die Größe des Datensatzes darstellt); andernfalls beträgt die Größe 256 Größe (2000–(Größe–256) 00).

Die Größe eines ENUM-Objekts wird durch die Anzahl der verschiedenen Enumerationswerte bestimmt. Die Aufzählung verwendet ein Byte und kann 255 mögliche Werte haben. Wenn der Aufzählungswert zwischen 256 und 65.535 liegt, werden zwei Bytes verwendet.

Die Größe des SET-Objekts wird durch die Anzahl der verschiedenen Set-Mitglieder bestimmt. Wenn die festgelegte Größe N ist, belegt das Objekt (N 7)/8 Bytes, gerundet auf 1, 2, 3, 4 oder 8 Bytes. Ein SET kann bis zu 64 Mitglieder haben.

2. Wählen Sie den richtigen Datentyp

Um die Speicherung zu optimieren, sollte in jedem Fall der genaueste Typ verwendet werden. Wenn die Spaltenwerte beispielsweise zwischen 1 und 99999 liegen, ist MEDIUMINT UNSIGNED ein guter Typ, wenn Sie Ganzzahlen verwenden. Dieser Typ benötigt von allen Typen, die den Spaltenwert darstellen können, den geringsten Speicher.

Führt alle grundlegenden Berechnungen ( , -, *, /) für die DECIMAL-Spalte mit einer Genauigkeit von 65 Dezimalstellen durch (basierend auf 10).

Verwenden Sie Operationen mit doppelter Genauigkeit, um DEZIMAL-Werte zu berechnen. Wenn die Genauigkeit nicht zu wichtig ist oder die Geschwindigkeit höchste Priorität hat, ist der Typ DOUBLE ausreichend. Um eine hohe Präzision zu erreichen, kann eine Konvertierung in in BIGINT gespeicherte Festkommatypen durchgeführt werden. Dadurch können alle Berechnungen mit 64-Bit-Ganzzahlen durchgeführt und die Ergebnisse bei Bedarf wieder in Gleitkommawerte umgewandelt werden.

3. Verwenden Sie Spaltentypen von anderen Datenbank-Engines

Um von anderen Anbietern geschriebenen SQL-Ausführungscode zu verwenden, ordnet MySQL Spaltentypen zu, wie in der folgenden Tabelle gezeigt. Diese Zuordnungen erleichtern den Import von Tabellendefinitionen aus anderen Datenbank-Engines in MySQL:

Andere Verkäufertypen MySQL-Typen

BOOL, TINYINT

BOOLEAN TINYINT

CHAR VARYING(M) VARCHAR(M)

DEC DECIMAL

FIXED DECIMAL

FLOAT4 FLOAT

FLO AT8 DOUBLE

INT1 TINYINT

INT2 SMALLINT

INT3 MEDIUMINT

INT4 INT

INT8 BIGINT

LONG VARBINARY MEDIUMBLOB

LONG VARCHAR MEDIUMTEXT

LONG MEDIUMTEXT

MIDDLEINT MEDIUMINT

NUMERIC DECIMAL

Ordnen Sie den Spaltentyp beim Erstellen der Tabelle zu und verwerfen Sie dann die ursprüngliche Typdefinition. Wenn Sie eine Tabelle mit dem Typ eines anderen Anbieters erstellen und dann die Anweisung DESCRIBE tbl_name ausführen, verwendet MySQL den entsprechenden MySQL-Typ, um die Struktur der Tabelle zu melden. Zum Beispiel:

mysql> CREATE TABLE t (a BOOL, b FLOAT8, c LONG, d NUMERIC);Query OK, 0 rows affected (0.08 sec);
mysql> DESCRIBE t;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| a     | tinyint(1)    | YES  |     | NULL    |       |
| b     | double        | YES  |     | NULL    |       |
| c     | mediumtext    | YES  |     | NULL    |       |
| d     | decimal(10,0) | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
Nach dem Login kopieren




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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Einfache Konzepte für einfaches Lernen MySQL: Einfache Konzepte für einfaches Lernen Apr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

MySQL und SQL: Wesentliche Fähigkeiten für Entwickler MySQL und SQL: Wesentliche Fähigkeiten für Entwickler Apr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Überwachen Sie Redis Tröpfchen mit Redis Exporteur Service Überwachen Sie Redis Tröpfchen mit Redis Exporteur Service Apr 10, 2025 pm 01:36 PM

Eine effektive Überwachung von Redis -Datenbanken ist entscheidend für die Aufrechterhaltung einer optimalen Leistung, die Identifizierung potenzieller Engpässe und die Gewährleistung der Zuverlässigkeit des Gesamtsystems. Redis Exporteur Service ist ein leistungsstarkes Dienstprogramm zur Überwachung von Redis -Datenbanken mithilfe von Prometheus. In diesem Tutorial führt Sie die vollständige Setup und Konfiguration des Redis -Exporteur -Dienstes, um sicherzustellen, dass Sie nahtlos Überwachungslösungen erstellen. Durch das Studium dieses Tutorials erhalten Sie voll funktionsfähige Überwachungseinstellungen

See all articles