Алгоритмы сжатия данных в базах данных работают за счёт устранения избыточности, содержащейся в исходных данных. ru.wikipedia.org
Простейший пример избыточности — повторение в тексте фрагментов (например, слов естественного или машинного языка). ru.wikipedia.org Такая избыточность обычно устраняется заменой повторяющейся последовательности ссылкой на уже закодированный фрагмент с указанием его длины. ru.wikipedia.org
Другой вид избыточности связан с тем, что некоторые значения в сжимаемых данных встречаются чаще других. ru.wikipedia.org Сокращение объёма данных достигается за счёт замены часто встречающихся данных короткими кодовыми словами, а редких — длинными (энтропийное кодирование). ru.wikipedia.org
Некоторые алгоритмы сжатия данных в базах данных и их особенности:
- Кластерное кодирование. cyberleninka.ru Работает на одинаковых по размеру блоках, содержащих несколько различных значений. cyberleninka.ru Блоки с одним уникальным значением сжимаются при помощи хранения только этого значения в отдельной последовательности. cyberleninka.ru
- Битовое сжатие. cyberleninka.ru Вместо того чтобы хранить каждое значение с помощью встроенного целочисленного типа данных, битовое сжатие использует только необходимое количество битов для представления значений. cyberleninka.ru
- Байтовое кодирование. cyberleninka.ru Использует байты, а не биты как основную единицу для создания частей памяти. cyberleninka.ru Значения разделяются на части по 7 бит, и каждая часть хранится в байте. cyberleninka.ru
- Lempel-Ziv кодирование. cyberleninka.ru Основная идея заключается в замене неоднократно повторяющихся шаблонов ссылками из предыдущих упоминаний. cyberleninka.ru Однократно встречающиеся шаблоны хранятся в самообращающейся таблице, которая строится динамически во время разбора входных данных. cyberleninka.ru