Spec-Zone.ru › MySQL 9.2

17.9.1.1 Обзор сжатия таблиц

Поскольку процессоры и кэш-память стали быстрее, чем устройства хранения на диске, многие рабочие нагрузки . Данные позволяют уменьшить размер базы данных, сократить ввод/вывод и повысить пропускную способность, при незначительном увеличении использования процессора. Сжатие особенно полезно для приложений с интенсивным чтением на системах с достаточным объемом оперативной памяти для хранения часто используемых данных в памяти.

Таблица InnoDB, созданная с помощью ROW_FORMAT=COMPRESSED, может использовать меньший на диске, чем заданное значение innodb_page_size. Меньшие страницы требуют меньше операций ввода/вывода для чтения и записи на диск, что особенно ценно для устройств.

Размер сжатой страницы задается с помощью параметра CREATE TABLE или ALTER TABLE KEY_BLOCK_SIZE. Разный размер страницы требует размещения таблицы в табличном пространстве или табличных пространствах, а не в , так как системное табличное пространство не может хранить сжатые таблицы. Для получения дополнительной информации см. Раздел 17.6.3.2, «Табличные пространства по файлам на таблицу» и Раздел 17.6.3.3, «Общие табличные пространства».

Уровень сжатия одинаков независимо от значения KEY_BLOCK_SIZE. По мере уменьшения значений KEY_BLOCK_SIZE вы получаете преимущества операций ввода/вывода от использования все меньших страниц. Но если вы укажете слишком малое значение, то потребуется дополнительная обработка для переорганизации страниц, когда значения данных нельзя достаточно сжать, чтобы поместить несколько строк на каждой странице. Существует жесткий предел для минимального размера KEY_BLOCK_SIZE для таблицы, основанный на длине ключевых столбцов каждого из ее индексов. Указание слишком малого значения приведет к ошибке в операторе CREATE TABLE или ALTER TABLE.

В кэше буфера сжатые данные хранятся на небольших страницах с размером страницы, основанным на значении KEY_BLOCK_SIZE. Для извлечения или обновления значений столбцов MySQL также создает несжатую страницу в кэше буфера со значениями данных. Внутри кэша буфера любые обновления несжатой страницы также перезаписываются обратно на эквивалентную сжатую страницу. Возможно, вам потребуется настроить размер кэша буфера для размещения дополнительных данных как сжатых, так и несжатых страниц, хотя несжатые страницы извлекаются из кэша буфера при необходимости освободить место, а затем снова распаковываются при следующем доступе.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/innodb-compression-background.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API