Если вам нужно чистое решение MySQL, вы всегда можете попробовать использовать тип хранения ARCHIVE
для своей таблицы. Документация описывает его как вставной, без обновления типа движка, предназначенного специально для того, что вы описываете, скрывая вещи, которые не изменятся годами.
Чтобы сделать то же самое в обычном движке, потребуется использовать zlib
в ваших потоках данных, но помните, что сжатие очень плохо работает с уже сжатыми данными, такими как большинство популярных типов изображений или видео. Вы выражаете свои требования в основном как текст, который обычно хорошо сжимается.
Ruby имеет Zlib::Deflate
, который может сжимать и расширять данные по требованию. Вы можете написать свою собственную оболочку, похожую на JSON one , реализовав методы encode
и decode
в своем модуле.
Следует учитывать, что вы, вероятно, можете хранить сжатые данные на CDN, если вы уверены, что ваш клиент поддерживает кодировку gzip
. Я не знаю ни одного крупного браузера, который бы этого не делал, поскольку сжатие ресурсов стало вполне стандартным, особенно в мобильном пространстве.