MySQL: mysqlcheck занимает слишком много места на диске для выполнения операций - PullRequest
0 голосов
/ 12 сентября 2018

Каждую субботу в 8 утра у меня следующий sh скрипт, который обслуживает все мои базы данных. Я запускаю mysqlcheck с --check, --optimize и --analyze.

Это скрипт:

# check: checks table for integrity errors
mysqlcheck -u root -h mydbendpoint.com -p'mypass' --check --all-databases

# optimize: reorganizes physical storage of table and index data
mysqlcheck -u root -h mydbendpoint.com -p'mypass' --optimize --all-databases

# analyze: rebuild and optimize the performance of indexes
mysqlcheck -u root -h -h mydbendpoint.com -p'mypass' --analyze --all-databases

Дело в том, что когда этот .sh работает, он занимает много дискового пространства. Вот скриншот моего свободного дискового пространства Amazon RDS:

enter image description here

Какая из трех команд занимает столько места на диске, чтобы эти mysqlchecks? --check, --optimize или --analyze? Или их трое?

Я не могу найти ничего об этом в официальной документации .

Заранее спасибо.

1 Ответ

0 голосов
/ 14 сентября 2018

Это --optimize, который использует все это пространство.Он в основном восстанавливает все ваши таблицы, чтобы восстановить неиспользуемое пространство (данные, которые были удалены), если вы настроили свой сервер на innodb_file_per_table

Это редко требуется, вы можете пропустить это.

Тем не менее, вы действительно делаете это на всех ваших базах данных ?Это также не должно быть необходимым.У меня есть только одна база данных, где я делаю еженедельную проверку, и цель этого хоста - исключительно проверить, работают ли мои резервные копии.Раз в неделю резервная копия восстанавливается на этом хосте, затем mysqlcheck проверяет, работают ли все таблицы.И это все.Мой босс уволил бы меня, если бы я делал это на производственных серверах:)

...