MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak działa UNCOMPRESS() w MariaDB

W MariaDB, UNCOMPRESS() to wbudowana funkcja, która dekompresuje ciąg znaków skompresowany przez COMPRESS() funkcja.

Składnia

Składnia wygląda tak:

UNCOMPRESS(string_to_uncompress)

Gdzie string_to_uncompress to ciąg, który chcesz rozpakować.

Przykład

Oto podstawowy przykład:

SELECT UNCOMPRESS(COMPRESS('Marching on'));

Wynik:

+-------------------------------------+
| UNCOMPRESS(COMPRESS('Marching on')) |
+-------------------------------------+
| Marching on                         |
+-------------------------------------+

Sprawdzanie rozmiaru

Oto podstawowy przykład:

SELECT
    LENGTH(REPEAT('z', 50)) AS "Uncompressed",
    LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
    LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";

Wynik:

+--------------+------------+--------------+
| Uncompressed | Compressed | Uncompressed |
+--------------+------------+--------------+
|           50 |         16 |           50 |
+--------------+------------+--------------+

Tutaj użyłem LENGTH() funkcja, aby uzyskać długość w bajtach odpowiednio nieskompresowanych i skompresowanych ciągów. Użyłem REPEAT() funkcja powtarzania tej samej litery 50 razy przed jej skompresowaniem.

Oto kolejny przykład, w którym zastosowano symbol praw autorskich (© ), który jest znakiem dwubajtowym:

SELECT
    LENGTH(REPEAT('©', 50)) AS "Uncompressed",
    LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
    LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";

Wynik:

+--------------+------------+--------------+
| Uncompressed | Compressed | Uncompressed |
+--------------+------------+--------------+
|          100 |         17 |          100 |
+--------------+------------+--------------+

Oto taki, który używa znaku trzybajtowego:

SELECT
    LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
    LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
    LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";

Wynik:

+--------------+------------+--------------+
| Uncompressed | Compressed | Uncompressed |
+--------------+------------+--------------+
|          150 |         18 |          150 |
+--------------+------------+--------------+

Argumenty zerowe

Przekazywanie null zwraca null :

SELECT UNCOMPRESS(null);

Wynik:

+------------------+
| UNCOMPRESS(null) |
+------------------+
| NULL             |
+------------------+

Brakujący argument

Wywołanie UNCOMPRESS() z niewłaściwą liczbą argumentów lub bez przekazania jakichkolwiek argumentów powoduje błąd:

SELECT UNCOMPRESS();

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'

Sprawdź kompresję

UNCOMPRESS() funkcja wymaga, aby MariaDB została skompilowana z biblioteką kompresji, taką jak zlib. Jeśli MariaDB nie została skompilowana z taką biblioteką kompresji, UNCOMPRESS() zwraca null .

Możesz sprawdzić have_compress zmienna systemowa, aby sprawdzić, czy biblioteka kompresji zlib jest dostępna dla serwera:

SELECT @@have_compress;

Wynik:

+-----------------+
| @@have_compress |
+-----------------+
| YES             |
+-----------------+

W tym przypadku biblioteka kompresji zlib jest dostępna dla serwera, a wynikiem jest YES .

Jeśli biblioteka kompresji zlib nie jest dostępna dla serwera, wynikiem będzie NO .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć tylko wartości liczbowe w MariaDB

  2. Przegląd klastrowania ProxySQL w ClusterControl

  3. Przegląd nowej bazy danych DBaaS firmy MariaDB — SkySQL

  4. Jak działa funkcja CONVERT_TZ() w MariaDB

  5. Pełna lista zestawów znaków obsługiwanych przez MariaDB