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, 2037🔥, 0💬
Popular Posts:
How To Recover a Dropped Index in Oracle? If you have the recycle bin feature turned on, dropped ind...
How To Assign Debug Privileges to a User in Oracle? In order to run SQL Developer in debug mode, the...
How Many Groups of Data Types in MySQL? MySQL support 3 groups of data types as listed below: String...
How to run Queries with SQL Server Management Studio Express in SQL Server? 1. Launch and connect SQ...
How To Concatenate Two Character Strings Together in SQL Server Transact-SQL? Concatenating two char...