Назад | Перейти на главную страницу

Есть ли у MySQL возможность сжатия данных в кэше?

Сегодня утром я познакомился с концепцией сжатие кеша базы данных чтобы разрешить больший кеш в данном объеме ОЗУ. Я понимаю, что Microsoft SQL 2008 предлагает эту функцию.

Мне было интересно, доступны ли аналогичные функции для MySQL?

Это зависит от двигателя. Каждый движок реализует свой собственный кеш (если вы не учитываете кеш запросов, который в большинстве случаев бесполезен).

Движки, которые используют сжатие и имеют собственную систему кэширования блоков, например InnoDB-plugin или Falcon, вероятно, сделают это автоматически. Это потому, что они кэшируют в формате, в котором блоки хранятся на диске, что означает сжатие.

Механизм HEAP (в памяти) не выполняет сжатие (на самом деле, стандартный механизм HEAP очень неэффективен, он не поддерживает строки переменной длины)

Механизмы, которые используют кеш ОС, будут кэшировать в любой форме, в которой они хранят данные на диске, например, механизм архивирования (который использует сжатие на диске), следовательно, будет хранить сжатые блоки в кеше ОС.

Боюсь, что его нет.

это может сжимать данные при репликации...

.. и есть новый плагин хранения innodb, который выполняет сжатие данных.

но не в таране. насколько мне известно.

но если вы имеете дело с каплями - просто храните их сжатыми [используя функция mysql или даже ваше внешнее приложение] - делаю это в одном из проектов. таким образом данные, кэшированные в оперативной памяти и хранящиеся на диске, сжимаются; в моем случае это роль прикладного уровня, чтобы распаковать его.