Назад | Перейти на главную страницу

Как плавно удалить таблицу InnoDB объемом 8 ГБ без глобальных блокировок

Версия MySQL: 5.1.63.

Я собираюсь удалить большую таблицу InnoDB размером ~ 8 ГБ. На прошлой неделе я сбросил стол в четыре раза больше на другой компьютер, и сработала глобальная блокировка, которая отключила нас на ~ 90 секунд. Я подозреваю, что это связано с table_cache замок. Кто-нибудь, кто знает, как сделать это падение более плавным? УДАЛЯЕТ сначала небольшими партиями, затем TRUNCATE это и, наконец, DROP TABLE? Очевидно, я хотел бы, чтобы эти базы данных были в рабочем состоянии, если это возможно. Я также подумывал об уменьшении пула буферов перед падением.

Я хотел бы услышать ваш вклад.

DROP TABLE всегда нужно несколько глобальных блокировок. Я бы сделал именно то, что вы описали в своем вопросе: удалил строки так быстро, как это безопасно (не слишком сильно нарушайте дисковый ввод-вывод и различные кеши, также будьте осторожны с репликацией), а затем отбросьте его.