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, 1478🔥, 0💬
Popular Posts:
What Happens If the UPDATE Subquery Returns Multiple Rows in MySQL? If a subquery is used in a UPDAT...
How To Assign Debug Privileges to a User in Oracle? In order to run SQL Developer in debug mode, the...
How AdventureWorksLT tables are related in SQL Server? There are 12 user tables defined in Adventure...
How To Connect to a MySQL Server with a Port Number in MySQL? If you want to connect a MySQL server ...
How To Convert Numeric Values to Integers in SQL Server Transact-SQL? Sometimes you need to round a ...