Самый быстрый способ перезагрузить базы данных MySQL в Perl - PullRequest
1 голос
/ 14 октября 2011

У меня есть скрипт, который должен добавить данные в папку, созданную в папке данных mysql, а затем каким-то образом заставить сервер mysql перезагрузить данные, чтобы база данных надежно отображалась. В настоящее время я использую system вызов скрипта /etc/init.d/mysql для перезапуска сервера, но это довольно медленно, я не смог найти ничего в mysql, который бы перезагрузил базу данных с помощью какого-то запроса ... Мне просто интересно если бы был способ сделать это немного быстрее?

Ответы [ 2 ]

1 голос
/ 14 октября 2011

Это зависит от используемого вами механизма хранения.

Таблицы MyISAM будут автоматически перезагружены, как только MySQL коснется их в следующий раз (очевидно, вам необходимо убедиться, что файлы .MYI, .MYD и .frm согласованы).

InnoDB немного сложнее и зависит от того, является ли это традиционная конфигурация со всеми таблицами в одном табличном пространстве, или вы используете innodb_file_per_table. В первом случае вам придется перезапустить сервер. С файлом на таблицу вы можете копировать отдельные файлы .ibd, но затем вам нужно использовать оператор ALTER TABLE для импорта этого табличного пространства.

См. здесь для получения информации о работе с отдельными файлами .ibd без перезапуска сервера.

Эта страница также полезна для просмотра способов перемещения данных InnoDB с места на место.

0 голосов
/ 14 октября 2011

Что вы подразумеваете под "довольно медленно"?

Вы можете сделать дамп / загрузку new db в один файл с именем orginal_db_name_temp, переименовать original DB, а затем переименовать orginal_db_name_temp в orginal_db_name - тогда у вас будет ваша новая БД на месте.

Тем не менее, я не знаю, какой метод быстрее с вашей стороны - потому что обратный путь при дампе и загрузке будет, вероятно, медленнее, чем при копировании файла. Но переименование БД, вероятно, будет быстрее, чем перезапуск сервера

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