15.2.1 Параметры запуска MyISAM
Следующие параметры для mysqld могут быть использованы для изменения поведения таблиц MyISAM. Дополнительную информацию см. в разделе 5.1.6, «Параметры командной строки сервера».
Таблица 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, «Системные переменные сервера».
-
Размер кэша дерева, используемого в оптимизации массового вставки.
ПримечаниеЭто ограничение на поток!
-
Не выполнять сброс буферов ключей между записями для любой таблицы
MyISAM.ПримечаниеЕсли вы это делаете, вы не должны обращаться к таблицам
MyISAMиз другой программы (например, из другого сервера MySQL или с помощью myisamchk) при использовании таблиц. Это может привести к повреждению индекса. Использование--external-lockingне исключает этот риск. -
Максимальный размер временного файла, который MySQL разрешено использовать при повторном создании индекса
MyISAM(во времяREPAIR TABLE,ALTER TABLEилиLOAD DATA). Если размер файла будет больше этого значения, индекс создается с использованием кэша ключей, что медленнее. Значение задается в байтах. -
Установка режима автоматической восстановления аварийно завершившихся таблиц
MyISAM. -
Установка размера буфера, используемого при восстановлении таблиц.
Автоматическое восстановление активируется, если вы запускаете 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, процесс восстановления создает файлы с именами вида . У вас должен быть скрипт cron, который автоматически перемещает эти файлы из каталогов базы данных на носитель резервного копирования.tbl_name-datetime.BAK
© 2025 Oracle
Licensed under the GPLv2 License.