2015-12-29 5 views
0

Около 1 часа назад я начал оптимизацию MySQL в таблице MyISAM. который составляет ~ 20G с 250M строк. На данный момент он создает db_name.TMD, который является 1G и растет.Mysql Остановить команду OPTIMIZE?

Как я понимаю, MySQL теперь воссоздает оптимизированную копию моей таблицы, если мое предположение является правильным убийством процесса оптимизации, не должно повредить оригинальную БД ? Также как я могу убить только процесс оптимизации?
И что происходит, если пространство диска заканчивается во время оптимизации ???

BTW. Я просто проверил список процессов и текущее состояние: «Восстановить с помощью keycache». Еще вопросы: В таблице, которую я начал оптимизировать, есть: файл 10442 МБ .MYD и 9319M .MYI, какое пространство займет процесс оптимизации? Размер файла .MYD или размер файла MYD + MYI?

+0

Почему вы используете 'OPTIMIZE'? Это почти никогда не нужно. –

+0

Существует настройка, позволяющая вместо этого использовать «ремонт путем сортировки». Это должно быть намного быстрее (но не препятствовать исчерпанию дискового пространства). –

+0

На второй машине меняют настройки, ремонтировали, сортируя, что заняло всего около 1 часа. Что касается того, почему я работал с оптимизацией, с чистого интереса, если бы он оптимизировал пространство. который он сделал ~ 1.5G из файла MYI. –

ответ

1

Я остановил процесс оптимизации несколько раз в прошлом, без побочных эффектов. Однако в случае проблем у меня была резервная копия.

Чтобы остановить процесс, я использовал KILL process_id, где process_id взято из результатов SHOW PROCESSLIST.

Объем пространства, необходимого для оптимизации, зависит от количества строк, помеченных как удаленные в вашей таблице.

+0

Я также остановил процесс, так как у меня закончилось свободное место, но база данных была отмечена как разбитая. копирование в настоящее время на другой компьютер с большим количеством свободного места для ремонта и оптимизации –