18.5 Справочный механизм ARCHIVE
Справочный механизм ARCHIVE создает специальные таблицы, предназначенные для хранения больших объёмов неиндексированных данных с очень небольшим размером.
Таблица 18.5. Возможности справочного механизма ARCHIVE
| Функция | Поддержка |
|---|---|
| Индексы B-дерева | Нет |
| Резервное копирование/восстановление по состоянию на определённый момент времени (Реализовано в сервере, а не в справочном механизме.) | Да |
| Поддержка кластерных баз данных | Нет |
| Кластерные индексы | Нет |
| Сжатие данных | Да |
| Кэши данных | Нет |
| Шифрование данных | Да (Реализовано в сервере с помощью функций шифрования.) |
| Поддержка внешних ключей | Нет |
| Индексы полнотекстового поиска | Нет |
| Поддержка геопространственных типов данных | Да |
| Поддержка геопространственной индексации | Нет |
| Индексы хешей | Нет |
| Кэши индексов | Нет |
| Грань блокировки | Строка |
| MVCC | Нет |
| Поддержка репликации (Реализовано в сервере, а не в справочном механизме.) | Да |
| Ограничения хранения | Нет |
| Индексы T-дерева | Нет |
| Транзакции | Нет |
| Обновление статистики для словаря данных | Да |
Справочный механизм ARCHIVE включён в дистрибутивы MySQL. Чтобы включить этот справочный механизм, если вы собираете MySQL из исходного кода, вызовите CMake с параметром -DWITH_ARCHIVE_STORAGE_ENGINE.
Чтобы изучить исходный код справочного механизма ARCHIVE, обратитесь к каталогу storage/archive дистрибутива исходного кода MySQL.
Вы можете проверить доступность справочного механизма ARCHIVE с помощью оператора SHOW ENGINES.
При создании таблицы ARCHIVE справочный механизм создаёт файлы с именами, начинающимися с имени таблицы. Файл данных имеет расширение .ARZ. Во время операций оптимизации может появиться файл .ARN.
Справочный механизм ARCHIVE поддерживает INSERT, REPLACE и SELECT, но не DELETE или UPDATE. Он поддерживает ORDER BY операции, BLOB столбцы и типы пространственных данных (см. Раздел 13.4.1, «Пространственные типы данных»). Географические пространственные системы ссылок не поддерживаются. Справочный механизм ARCHIVE использует блокировку на уровне строк.
Справочный механизм ARCHIVE поддерживает атрибут столбца AUTO_INCREMENT. Столбец AUTO_INCREMENT может иметь уникальный или не уникальный индекс. Попытка создать индекс на любом другом столбце приводит к ошибке. Справочный механизм ARCHIVE также поддерживает табличный параметр AUTO_INCREMENT в операторах CREATE TABLE, соответственно, для указания начального значения последовательности для новой таблицы или сброса значения последовательности для существующей таблицы.
ARCHIVE не поддерживает вставку значения в столбец AUTO_INCREMENT, меньшего текущего максимального значения столбца. Попытки сделать это приводят к ошибке.
Справочный механизм ARCHIVE игнорирует столбцы BLOB, если они не запрашиваются, и просматривает их при чтении.
Справочный механизм ARCHIVE не поддерживает разбиение.
Хранение: Строки сжимаются при вставке. Справочный механизм ARCHIVE использует zlib бессокращающее сжатие данных (см. http://www.zlib.net/). Вы можете использовать OPTIMIZE TABLE для анализа таблицы и упаковки её в более компактный формат (для причины использования OPTIMIZE TABLE, см. далее в этом разделе). Справочный механизм также поддерживает CHECK
TABLE. Существуют несколько типов вставок, которые используются:
Оператор
INSERTпросто помещает строки в буфер сжатия, и этот буфер сбрасывает содержимое по мере необходимости. Вставка в буфер защищена блокировкой. ОператорSELECTзаставляет произойти сброс содержимого буфера.Массовая вставка видна только после её завершения, если не происходят другие вставки одновременно, в этом случае она может быть видна частично. Оператор
SELECTникогда не вызывает сброс содержимого буфера массовой вставки, если в то время как она загружается не происходит обычная вставка.
Извлечение: При извлечении строки распаковываются по требованию; кеш строк отсутствует. Операция SELECT выполняет полный поиск по таблице: Когда происходит SELECT, она определяет, сколько строк доступно в настоящее время, и считывает это количество строк. Операция SELECT выполняется как согласованное чтение. Обратите внимание, что большое количество операторов SELECT во время вставки может ухудшить сжатие, если не используются только массовые вставки. Для достижения лучшего сжатия вы можете использовать OPTIMIZE TABLE или REPAIR TABLE. Количество строк в таблицах ARCHIVE, сообщённое оператором SHOW TABLE STATUS, всегда точно. См. Раздел 15.7.3.4, «Оператор OPTIMIZE TABLE», Раздел 15.7.3.5, «Оператор REPAIR TABLE» и Раздел 15.7.7.38, «Оператор SHOW TABLE STATUS».
Дополнительные ресурсы
Форум, посвящённый справочному механизму
ARCHIVE, доступен по адресу https://forums.mysql.com/list.php?112.
© 2025 Oracle
Licensed under the GPLv2 License.