In MariaDB UNCOMPRESS()
ist eine integrierte Funktion, die eine Zeichenfolge dekomprimiert, die mit COMPRESS()
komprimiert wurde Funktion.
Syntax
Die Syntax lautet wie folgt:
UNCOMPRESS(string_to_uncompress)
Wobei string_to_uncompress
ist die Zeichenfolge, die Sie dekomprimieren möchten.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT UNCOMPRESS(COMPRESS('Marching on'));
Ergebnis:
+-------------------------------------+ | UNCOMPRESS(COMPRESS('Marching on')) | +-------------------------------------+ | Marching on | +-------------------------------------+
Überprüfen der Größe
Hier ist ein einfaches Beispiel:
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";
Ergebnis:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Hier habe ich die LENGTH()
verwendet -Funktion, um die Länge in Bytes der unkomprimierten bzw. komprimierten Zeichenfolgen abzurufen. Ich habe den REPEAT()
verwendet Funktion, denselben Buchstaben 50 Mal zu wiederholen, bevor er komprimiert wird.
Hier ist ein weiteres Beispiel, das das Copyright-Symbol (©
), bei dem es sich um ein Zwei-Byte-Zeichen handelt:
SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";
Ergebnis:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
Hier ist einer, der ein Drei-Byte-Zeichen verwendet:
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";
Ergebnis:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Null-Argumente
Übergabe von null
gibt null
zurück :
SELECT UNCOMPRESS(null);
Ergebnis:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Fehlendes Argument
Aufruf von UNCOMPRESS()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT UNCOMPRESS();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Auf Komprimierung prüfen
Das UNCOMPRESS()
Die Funktion erfordert, dass MariaDB mit einer Komprimierungsbibliothek wie zlib kompiliert wurde. Wenn MariaDB nicht mit einer solchen Komprimierungsbibliothek kompiliert wurde, UNCOMPRESS()
gibt null
zurück .
Sie können den have_compress
überprüfen Systemvariable, um zu sehen, ob der Server auf die zlib-Komprimierungsbibliothek zugreifen kann:
SELECT @@have_compress;
Ergebnis:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
In diesem Fall ist die zlib-Komprimierungsbibliothek für den Server zugänglich und das Ergebnis ist YES
.
Wenn der Server nicht auf die zlib-Komprimierungsbibliothek zugreifen kann, wäre das Ergebnis NO
.