Я определенно вижу много практических преимуществ хранения сжатого текста ...
Сжатие gz быстрое, может передаваться в потоковом режиме и экономит много места в некоторых сценариях.
При практическом использовании в реальной жизни у меня используется около 50 МБ данных на 1000 записей, и я получаю миллионы записей.
Сжатый, я могу уменьшить это до 10 МБ на 1000 записей, что означает, что я плачу 1/5 от обычной платы за хранение данных своему облачному провайдеру.
Если это не практическая выгода, что еще?;)
Кроме того, считали ли вы, что загрузка процессора gzip минимальна?
gzip уже является стандартом HTTP, stackoverflow отправляется в ваш браузер в потоке gzip, как почти любой веб-сайт, если вы не используете браузер с 1985 года.
Я предполагаю, что доступ к диску (особенно к жестким дискам) оказывает большее влияние, чем gzip, на получение данных. Таким образом, уменьшая объем данных за счет сжатия, вы фактически можете повысить производительность.
Вот код, который я использую для сжатия данных в совместимом с MySQL формате:
Вот мой код для этого сценария, для распаковки вы также можете использовать PHP и просто извлечь первые 4 байта.
Вывод mysql:
mysql : "select hex(compress('1234512345'))"
0A000000789C3334323631350411000AEB01FF
PHP-эквивалент:
$string="1234512345";
$data=gzcompress($string);
$len=mb_strlen($string);
$head=pack('V',$len);
echo($head);
echo($data);
Вывод PHP:
php test.php | hexdump -C
00000000 0a 00 00 00 78 9c 33 34 32 36 31 35 04 11 00 0a