Как запустить OPTIMIZE_TABLE через shell скрипт для конкретных БД?

Ссылка скопирована
1 ответ

Имеется скелет скрипта (псевдокод)

sudo mysql -u root -p <<EOF for name in ["database1", "db2", "randomdb"]:     for table in name.tables:         OPTIMIZE TABLE table; EOF

sudo mysql -u root -p <<EOF for name in ["database1", "db2", "randomdb"]: for table in name.tables: OPTIMIZE TABLE table; EOF

Собсвенно суть в том, чтобы передавать в агрументы название базы данных и в ней оптимизировать все таблицы.

Из этого вытекает два вопроса
1) Как лучше всего итерировать сами базы данных
2) (Менее приоритеный вопрос) как оптимизировать все таблицы за раз, наверняка можно без итерации

Опыта с базами данных не много, поэтому прошу помощи с конкретными примерами кода

Дополнительно:

Ответы:

Создайте хранимую процедуру, которая принимает имя БД и выполняет нужную команду для каждой таблицы базы. И выполняйте её.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Алексей Денисов Ответ

Для запуска команды OPTIMIZE_TABLE через shell скрипт для конкретных баз данных в MySQL, вам потребуется создать скрипт, который будет выполнять нужные действия.

Прежде всего, убедитесь, что у вас есть доступ к серверу MySQL и права на выполнение команды OPTIMIZE_TABLE.

Ниже приведен пример shell скрипта, который можно использовать для запуска OPTIMIZE_TABLE для конкретных баз данных:

```bash
#!/bin/bash

# Укажите данные для подключения к MySQL
DB_USER="your_username"
DB_PASS="your_password"
DB_HOST="localhost"

# Список баз данных, которые нужно оптимизировать
DATABASES=("database1" "database2" "database3")

# Цикл по всем базам данных
for DB_NAME in "${DATABASES[@]}"
do
# Вызываем команду OPTIMIZE_TABLE для каждой базы данных
mysql -u$DB_USER -p$DB_PASS -h $DB_HOST $DB_NAME -e "OPTIMIZE TABLE *;"
done
```

В этом скрипте вы можете указать свои учетные данные для подключения к MySQL (DB_USER, DB_PASS, DB_HOST) и список баз данных, которые вы хотите оптимизировать (DATABASES).

Для запуска скрипта, сохраните его в файл с расширением .sh (например, optimize_tables.sh), установите права на выполнение (chmod +x optimize_tables.sh) и запустите его из командной строки:

```bash
./optimize_tables.sh
```

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

Убедитесь, что перед запуском скрипта у вас есть резервная копия данных, так как оптимизация таблиц может привести к потере данных в случае сбоя.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно