Collections:
COMPRESS() - Compressing Data
How to compress data using the COMPRESS() function?
✍: FYIcenter.com
COMPRESS(str) is a MySQL built-in function that
compresses a given byte string using the default LZ77 compression algorithm.
For example:
SET @str = 'FYIcenter.com,FYIcenter.com,FYIcenter.com,FYIcenter.com'; SET @bin = COMPRESS(@str); SELECT LENGTH(@str) AS StrSize, LENGTH(@bin) AS BinSize, HEX(@bin); -- +---------+---------+------------------------------------------------------------+ -- | StrSize | BinSize | HEX(@bin) | -- +---------+---------+------------------------------------------------------------+ -- | 55 | 29 | 37000000789C738BF44C4ECD2B492DD24BCECFD57123960700279D13DD | -- +---------+---------+------------------------------------------------------------+
Note that the compression rate depends on the byte sequence pattern of the input data. For example:
SET @str = REPEAT('a', 1000);
SET @bin = COMPRESS(@str);
SELECT LENGTH(@str), LENGTH(@bin), LENGTH(@bin)/LENGTH(@str);
-- +--------------+--------------+---------------------------+
-- | LENGTH(@str) | LENGTH(@bin) | LENGTH(@bin)/LENGTH(@str) |
-- +--------------+--------------+---------------------------+
-- | 1000 | 21 | 0.0210 |
-- +--------------+--------------+---------------------------+
SET @str = RANDOM_BYTES(1000);
SET @bin = COMPRESS(@str);
SELECT LENGTH(@str), LENGTH(@bin), LENGTH(@bin)/LENGTH(@str);
-- +--------------+--------------+---------------------------+
-- | LENGTH(@str) | LENGTH(@bin) | LENGTH(@bin)/LENGTH(@str) |
-- +--------------+--------------+---------------------------+
-- | 1000 | 1015 | 1.0150 |
-- +--------------+--------------+---------------------------+
Reference information of the COMPRESS() function:
COMPRESS(str): bin Compresses a given byte string using the default LZ77 compression algorithm. Arguments, return value and availability: str: Required. The byte string to be compressed. bin: Return value. The compressed byte string. Available since MySQL 4.1.
Related MySQL functions:
⇒ CRC32() - Cyclic Redundancy Check 32-Bit
⇐ AES_ENCRYPT() - AES Data Encryption
2023-12-15, 1740🔥, 0💬
Popular Posts:
How To Revise and Re-Run the Last SQL Command in Oracle? If executed a long SQL statement, found a m...
How To Fix the INSERT Command Denied Error in MySQL? The reason for getting the "1142: INSERT comman...
How To Generate CREATE TABLE Script on an Existing Table in SQL Server? If you want to know how an e...
How To Select All Columns of All Rows from a Table in Oracle? The simplest query statement is the on...
How To Start MySQL Server in MySQL? If you want to start the MySQL server, you can run the "mysqld" ...