Одна важная вещь, которую вы должны сделать, - это использовать файловую систему XFS для своего каталога данных MySQL.
Удаление больших файлов в файловой системе ext3 занимает слишком много времени, как вы, без сомнения, читали в блоге Percona, на который ссылались.Использование XFS значительно ускоряет удаление большого файла, поэтому глобальный мьютекс удерживается в течение более короткого времени.
Я бы также отбрасывал таблицы по одному, чтобы еще больше сократить время удержания мьютекса.Затем, после того как вы удалили все таблицы, удалите базу данных.
База данных в MySQL вряд ли является физическим объектом вообще.Это подкаталог каталога данных MySQL и крошечный файл с именем db.opt
, в котором хранятся некоторые свойства базы данных, такие как набор символов по умолчанию (в MySQL 8.0 это уже не отдельный файл).После удаления всех таблиц удаление самой базы данных является тривиальным.
Другое предложение - сначала удалить пользователя MySQL клиента, а затем разрешить MySQL работать в течение нескольких часов, пока данные из таблиц этого клиента больше не будут кэшированы.в пуле буферов.Когда вы отбрасываете большую таблицу, MySQL должен сканировать буферный пул, чтобы освободить страницы, принадлежащие этой таблице.Чем больше буферный пул, тем дольше это занимает.Таким образом, вы можете свести к минимуму это влияние, если вы позволите страницам для таблиц этого клиента истечь и покинуть буферный пул.Это может занять некоторое время, потому что это больше зависит от спроса на другие таблицы.Нет хорошего способа заставить страницу таблицы покинуть буферный пул, если не считать удаления таблицы.
Я делал это в некоторых средах.Сделайте запрос DROP TABLE в RENAME TABLE, чтобы переместить таблицу в другую схему, к которой нет доступа ни у одного пользователя.Затем периодически запускайте скрипт, чтобы действительно отбрасывать таблицы, которые были в этой ручке более 7 дней.Это дает время для постепенного удаления страниц из буферного пула, поскольку данные из других таблиц вытесняют их.Кроме того, это также дает льготный период для пользователей, чтобы они могли передумать, если решили, что они в конце концов отбросили стол, который им нужен.