In der Myisam-Engine von MySQL gibt es einen, der leicht zu ignorieren ist, nämlich den komprimierten Index PACK_KEYS.
MyISAM verwendet die Präfixkomprimierung, um die Indexgröße zu reduzieren kann auch komprimiert werden.
Sie können PACK_KEYS verwenden, um die Indexkomprimierungsmethode zu steuern, wenn Sie die Tabelle erstellen verwenden.
PACK_KEYS wird im MySQL-Handbuch wie folgt beschrieben:
Setzen Sie diese Option auf 1, wenn der Index kleiner sein soll. Dadurch werden Aktualisierungen normalerweise langsamer und das Lesen schneller. Wenn Sie die Option auf 0 setzen, wird die gesamte Schlüsselwortkomprimierung deaktiviert. Wenn diese Option auf DEFAULT gesetzt ist, komprimiert die Speicher-Engine nur lange CHAR- oder VARCHAR-Spalten (nur MyISAM).
Wenn Sie PACK_KEYS nicht verwenden, besteht die Standardaktion darin, nur Zeichenfolgen, aber keine Zahlen zu komprimieren. Wenn Sie PACK_KEYS=1 verwenden, werden auch Zahlen komprimiert.
Beim Komprimieren binärer numerischer Schlüsselwörter verwendet MySQL die Präfixkomprimierung:
o Jedes Schlüsselwort erfordert ein zusätzliches Byte, um anzugeben, wie viele Bytes im vorherigen Schlüsselwort dem nächsten Schlüsselwort entsprechen.
o Zeiger auf Zeilen werden nach dem Schlüsselwort in High-Endian-Reihenfolge gespeichert, um die Komprimierung zu verbessern.
Das bedeutet, dass bei vielen identischen Schlüsselwörtern in zwei aufeinanderfolgenden Zeilen nachfolgende „identische“ Schlüsselwörter normalerweise nur zwei Bytes belegen (einschließlich des Zeigers auf die Zeile). Im Gegensatz dazu belegen nachfolgende Schlüssel unter normalen Umständen storage_size_for_key + pointer_size (die Zeigergröße beträgt normalerweise 4). Allerdings ist die Präfixkomprimierung nur dann von Vorteil, wenn viele Nummern identisch sind. Wenn alle Schlüsselwörter völlig unterschiedlich sind und Schlüsselwörter keine NULL-Werte enthalten dürfen, wird für jedes Schlüsselwort ein weiteres Byte verwendet. (In diesem Fall ist das Byte, das die Länge des komprimierten Schlüsselworts speichert, dasselbe Byte, das verwendet wird, um zu markieren, ob das Schlüsselwort NULL ist.
Zum Beispiel gibt es ein Feld zum Speichern des Dateinamens, z. B. „ abc.pdf“, wobei das PDF für alle gleich ist, sodass Sie
einen komprimierten Index basierend auf diesem Feld verwenden können:
CREATE TABLE <TABLE_NAME> ( `id` INT NOT NULL , `name` VARCHAR(250) NULL , PRIMARY KEY (`id`) ) PACK_KEYS = 1; ALTER TABLE table_name PACK_KEYS = 1;
Oben finden Sie die detaillierte Erklärung von PACK_KEYS in MySQL, mehr Für verwandte Inhalte achten Sie bitte auf die chinesische PHP-Website (www.php.cn)