MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи UNCOMPRESS() в MariaDB

В MariaDB, UNCOMPRESS() е вградена функция, която декомпресира низ, който е бил компресиран от COMPRESS() функция.

Синтаксис

Синтаксисът е така:

UNCOMPRESS(string_to_uncompress)

Където string_to_uncompress е низът, който искате да разкомпресирате.

Пример

Ето един основен пример:

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

Резултат:

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

Проверка на размера

Ето един основен пример:

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

Резултат:

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

Тук използвах LENGTH() функция за получаване на дължината в байтове съответно на некомпресирания и компресиран низ. Използвах REPEAT() функция за повторение на една и съща буква 50 пъти, преди да я компресирате.

Ето още един пример, който използва символа за авторско право (© ), което е двубайтов знак:

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

Резултат:

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

Ето един, който използва трибайтов знак:

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

Резултат:

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

Нулеви аргументи

Предаването на null връща null :

SELECT UNCOMPRESS(null);

Резултат:

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

Липсващ аргумент

Извикване на UNCOMPRESS() с грешен брой аргументи или без подаване на аргументи води до грешка:

SELECT UNCOMPRESS();

Резултат:

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

Проверете за компресия

UNCOMPRESS() функцията изисква MariaDB да е компилиран с библиотека за компресия като zlib. Ако MariaDB не е компилиран с такава библиотека за компресия, UNCOMPRESS() връща null .

Можете да проверите have_compress системна променлива, за да видите дали библиотеката за компресиране на zlib е достъпна за сървъра:

SELECT @@have_compress;

Резултат:

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

В този случай библиотеката за компресиране на zlib е достъпна за сървъра и резултатът е YES .

Ако библиотеката за компресиране на zlib не е достъпна за сървъра, резултатът ще бъде 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. Мигриране от MySQL Enterprise към MariaDB 10.3

  2. Разгръщане на MariaDB Sharding с Spider с помощта на ClusterControl

  3. COUNT() Функция в MariaDB

  4. Как да замените междинен MySQL или MariaDB Master с Binlog сървър с помощта на MaxScale

  5. Изберете Всичко преди или след определен символ в MariaDB