MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie UNCOMPRESS() in MariaDB funktioniert

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 .