Spec-Zone.ru › MySQL 5.7

15.2.1 Параметры запуска MyISAM

Следующие параметры для mysqld могут быть использованы для изменения поведения таблиц MyISAM. Дополнительную информацию см. в разделе 5.1.6, «Параметры командной строки сервера».

Таблица 15.3 Справочник по параметрам и переменным MyISAM

Таблица 15.3 Справочник по параметрам и переменным MyISAM
Имя Командная строка Файл параметров Системная переменная Переменная состояния Область действия переменной Динамическая
bulk_insert_buffer_size Да Да Да Оба Да
concurrent_insert Да Да Да Глобальная Да
delay_key_write Да Да Да Глобальная Да
have_rtree_keys Да Глобальная Нет
key_buffer_size Да Да Да Глобальная Да
log-isam Да Да
myisam-block-size Да Да
myisam_data_pointer_size Да Да Да Глобальная Да
myisam_max_sort_file_size Да Да Да Глобальная Да
myisam_mmap_size Да Да Да Глобальная Нет
myisam_recover_options Да Да Да Глобальная Нет
myisam_repair_threads Да Да Да Оба Да
myisam_sort_buffer_size Да Да Да Оба Да
myisam_stats_method Да Да Да Оба Да
myisam_use_mmap Да Да Да Глобальная Да
tmp_table_size Да Да Да Оба Да

Следующие системные переменные влияют на поведение таблиц MyISAM. Дополнительную информацию см. в разделе 5.1.7, «Системные переменные сервера».

  • bulk_insert_buffer_size

    Размер кэша дерева, используемого в оптимизации массового вставки.

    Примечание

    Это ограничение на поток!

  • delay_key_write=ALL

    Не выполнять сброс буферов ключей между записями для любой таблицы MyISAM.

    Примечание

    Если вы это делаете, вы не должны обращаться к таблицам MyISAM из другой программы (например, из другого сервера MySQL или с помощью myisamchk) при использовании таблиц. Это может привести к повреждению индекса. Использование --external-locking не исключает этот риск.

  • myisam_max_sort_file_size

    Максимальный размер временного файла, который MySQL разрешено использовать при повторном создании индекса MyISAM (во время REPAIR TABLE, ALTER TABLE или LOAD DATA). Если размер файла будет больше этого значения, индекс создается с использованием кэша ключей, что медленнее. Значение задается в байтах.

  • myisam_recover_options=mode

    Установка режима автоматической восстановления аварийно завершившихся таблиц MyISAM.

  • myisam_sort_buffer_size

    Установка размера буфера, используемого при восстановлении таблиц.

Автоматическое восстановление активируется, если вы запускаете mysqld с установленной системной переменной myisam_recover_options. В этом случае, когда сервер открывает таблицу MyISAM, он проверяет, помечена ли таблица как аварийно завершившаяся, или переменная счета открытий для таблицы не равна 0, и вы запускаете сервер с отключенным внешним блокированием. Если выполняется любое из этих условий, происходит следующее:

  • Сервер проверяет таблицу на наличие ошибок.

  • Если сервер обнаруживает ошибку, он пытается выполнить быстрое восстановление таблицы (с сортировкой и без повторного создания файла данных).

  • Если восстановление терпит неудачу из-за ошибки в файле данных (например, ошибка дублирующего ключа), сервер пытается снова, на этот раз повторно создавая файл данных.

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

Если восстановление не сможет восстановить все строки из ранее завершенных операторов, и вы не указали FORCE в значении системной переменной myisam_recover_options, автоматическое восстановление прерывается с сообщением об ошибке в журнале ошибок:

Error: Couldn't repair table: test.g00pages

Если вы укажете FORCE, вместо этого будет записано предупреждение:

Warning: Found 344 of 354 rows when repairing ./test/g00pages

Если значение автоматического восстановления включает BACKUP, процесс восстановления создает файлы с именами вида tbl_name-datetime.BAK. У вас должен быть скрипт cron, который автоматически перемещает эти файлы из каталогов базы данных на носитель резервного копирования.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/myisam-start.html

Spec-Zone.ru

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