Рейтинг:0

OPTIMIZE TABLE файл innodb для каждой таблицы во время работы системы

флаг kr

У меня был файл базы данных Moodle mdl_logstore_standard_log.ibd размером 800 ГБ. Я удалил около 900 миллионов строк за 10-15 дней. Файл .idb весил около 800 ГБ, и его размер оставался прежним после удаления. Я хочу оптимизировать таблицу, чтобы исправить это.

Безопасно ли запускать OPTIMIZE TABLE, пока пользователи продолжают использовать веб-страницу moodle? Или я должен запретить пользователям доступ и запускать OPTIMIZE TABLE?

Если я прекращу доступ, я должен восстановить доступ в течение 48 часов. В этом процессе, если процесс оптимизации не завершится, если мне придется его прервать, возникнут ли у меня проблемы?

Спасибо.

флаг in
Это безопасно с точки зрения данных, но вы, вероятно, получите блокировки метаданных, любая запись в таблицу, вероятно, на какое-то время не удастся. Что происходит, так это то, что копия создается, а затем переключается, в худшем случае вы восстанавливаетесь из резервной копии.
Рейтинг:1
флаг ua

Прежде чем вам нужно будет выполнить следующее большое удаление, прочитайте следующий блог и спланируйте удаление более эффективным способом: http://mysql.rjweb.org/doc.php/deletebig

Тем временем пользователи могут продолжать использовать таблицу, даже если на диске много свободного места. То есть ничего не делать.

Если вам не хватает места на диске, _и таблица была создана во время innodb_file_per_table был НА, ОПТИМИЗИРОВАТЬ ТАБЛИЦУ уменьшит размер диска за счет доступа пользователей. Вы могли заметить, что удаление повлияло на доступ пользователей. (В моем блоге показаны способы избежать такого воздействия.)

Если вы ничего не сделаете, файл размером 800 ГБ постепенно заполнится новыми вставленными строками. Это может быть хорошо.

Şükrü Özdemir avatar
флаг kr
Привет Я сделал удаление, увеличив временную метку php на 100 тыс. секунд, пока не осталось 180 дней журналов от конца до вершины. Код такой: УДАЛИТЬ ИЗ mdl_logstore_standard_log, ГДЕ создано время
флаг ua
@ÅükrüÃzdemir - Нет и нет. Разница в производительности будет незначительной. Запуск таблицы `OPTIMIZE` _вероятно_ будет мешать пользователям.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.