COMPRESS()壓縮一個字串

COMPRESS(str)
  • str傳入的字串

這個函數要求MySQL用一個壓縮程式庫(如zlib)對傳入的字串進行壓縮。否則,回傳值始終是NULL。UNCOMPRESS() 可將壓縮過的字串進行解壓縮。
mysql> SELECT LENGTH(COMPRESS(REPEAT('a',1000)));
-> 21

mysql> SELECT LENGTH(COMPRESS(''));
-> 0

mysql> SELECT LENGTH(COMPRESS('a'));
-> 13

mysql> SELECT LENGTH(COMPRESS(REPEAT('a',16)));
-> 15

壓縮後的字串的內容按照以下方式存儲:
  • 空字串按照空字串存儲。
  • 非空字串未壓縮字串的四字節長度進行存儲(首先為低字節),後面是壓縮字串。如果字串以空格結尾,就會在後加一個"."號,以防止當結果值是存儲在CHAR或VARCHAR類型的字段列時,出現自動把結尾空格去掉的現象。(不推薦使用 CHAR 或VARCHAR 來存儲壓縮字串。最好使用一個 BLOB 列代替)。

請參考 UNCOMPRESS()UNCOMPRESSED_LENGTH()

沒有留言: