webew
Войти » Регистрация
 
MySQL/MariaDB :: оптимизация

State: Repair with keycache - медленное создание индексов и восстановление таблиц

2 февраля 2010, 7:05
Автор: rgbeast
Проблема: Медленно создается индекс/восстанавливается таблица и при этом SHOW PROCESSLIST показывает запрос в состоянии "Repair with keycache".

Решение: Данный вид сортировки применяется в случае, если свободного места в директории для временных файлов недостаточно для хранения индекса. Задайте системную переменную tmpdir (в my.cnf) так, чтобы она указывала на область диска, содержащую достаточно свободного места. В поле статус при сортировке будет отображаться "Repair by sorting", что быстрее в десятки и даже сотни раз.

Примечание: Если увеличить доступное в tmpdir дисковое пространтство невозможно, используйте PARTITIONING. В этом случае индексы будут создаваться последовательно для каждого раздела таблицы. PARTITIONING может также увеличить скорость работы с большими таблицами (при условии, что работает pruning).

Пример: Таблица из 3 миллиардов записей длиной по 11 байт. Индекс длиной 4 байта создается методом "Repair by sorting" 2 часа, а методом "Repair with keycache" более недели (при key_buffer_size=256M).

Note: Для того, чтобы "Repair by sorting" работал, необоходимо также, чтобы переменная myisam_max_sort_file_size была установлена в достаточно большое значение.
Добавить комментарий

1234ru

Я так понимаю, отличается тем, что Repair with keycache использует вместо временного каталога пространство буфера ключей?
То, что не убивает нас, делает нас инвалидами.
06.02.2010, 01:27
Ответить
NO USERPIC

rgbeast

У MySQL есть довольно эффективный алгоритм построения индекса, использующий filesort. Он требует много места на диске и так получилось, что MySQL выделяет это место в tmpdir. Если места на диске недостаточно, то включается другой алгоритм repair with keycache, который работает крайне медленно, если индекс не помещается в key_buffer. Самое сложное сообразить, что дело в том, что в tmpdir мало места (напрямую это ниокуда не следует).
06.02.2010, 21:38
Ответить
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100