mysql.h


COMPRESS

COMPRESS(string_to_compress)

Comprime una cadena.

mysql> SELECT LENGTH(COMPRESS(REPEAT("a",1000)));
        -> 21
mysql> SELECT LENGTH(COMPRESS(""));
        -> 0
mysql> SELECT LENGTH(COMPRESS("a"));
        -> 13
mysql> SELECT LENGTH(COMPRESS(REPEAT("a",16)));
        -> 15

COMPRESS() fue añadido en MySQL 4.1.1. Requiere que MySQL se haya compilado con una biblioteca de compresión como zlib. De otro modo, el valor de retorno es siempre NULL. El contenido de la cadena comprimida se almacena del siguiente modo:

  • Las cadenas vacías se almacenan como cadenas vacías.
  • Las cadenas no vacías se almacenan como un dato de 4 bytes con la longitud de la cadena sin comprimir (el byte de menor peso primero), seguido por la cadena comprimida usando gzip. Si la cadena termin a con un espacio, se añade un '.' extra para impredir problemas con la posible eliminación de espacios si el resultado se almacena en una columna CHAR o VARCHAR. El uso de CHAR o VARCHAR para almacenar cadenas comprimidas no se recomienda. Es mucho mejor usar una columna BLOB en su lugar.