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, 1768🔥, 0💬
Popular Posts:
How Fixed Length Strings Are Truncated and Padded in SQL Server Transact-SQL? When the length of the...
What are single-byte character string data types supported in SQL Server Transact-SQL? Single-byte c...
Where to find answers to frequently asked questions on INSERT, UPDATE and DELETE Statements in MySQL...
How to run Queries with SQL Server Management Studio Express in SQL Server? 1. Launch and connect SQ...
How To Verify a User name with SQLCMD Tool in SQL Server? The quickest way to verify a user name in ...