Las funciones zstd_compress y zstd_decompress comprimen y descomprimen un blob con el algoritmo Zstandard.
Estas funciones son similares a zlib_compress y zlib_decompress. Para textos, Zstandard suele ser más efectivo que Zlib o GZip, mientras que la velocidad es comparable o mayor.
Funcionamiento
zstd_compress toma un blob y entrega el resultado comprimido por Zstandard como un blob. zstd_decompress realiza la operación inversa: toma un blob comprimido por Zstandard y devuelve el contenido original. Ambas funciones aceptan exactamente un parámetro.
Ejemplo: Comprimir
El siguiente ejemplo comprime un texto y muestra el resultado en base64:
select base64_encode(zstd_compress(ascii_to_blob('Este texto muestra cómo la función zstd_compress reconoce patrones repetidos y los comprime en un resultado pequeño.')))
Con el resultado:
KLUv/SB0rQIAQkcUFbClOee0JH6L7J1kWCbS5rCUuYxZBICjjQomdKKv+hHSWCs+pmb395p7s0GTmu3wlepxqgiaNNOY0AnBeA51uTBhUI/6SM1l6KtOn8avBwcCAA==
Ejemplo: Descomprimir
El siguiente ejemplo descomprime el blob del ejemplo anterior y devuelve el texto original:
select to_char(zstd_decompress('KLUv/SB0rQIAQkcUFbClOee0JH6L7J1kWCbS5rCUuYxZBICjjQomdKKv+hHSWCs+pmb395p7s0GTmu3wlepxqgiaNNOY0AnBeA51uTBhUI/6SM1l6KtOn8avBwcCAA=='))
Con el resultado:
Este texto muestra cómo la función zstd_compress reconoce patrones repetidos y los comprime en un resultado pequeño.
Disponibilidad
Las funciones SQL zstd_compress y zstd_decompress están disponibles a partir de la versión 27.0.