Как удалить определенный запрос из двоичного журнала MySQL

Итак, у меня есть двоичный журнал, который восстанавливаются навсегда из-за какого-то плохо написанного кода, который обновляет таблицу каждую секунду или около того для каждого пользователя, который в данный момент вошел в систему. Конечно, процесс восстановления восстанавливает каждую из этих строк и делает скрипт займет больше времени, чем нужно.

Какой самый быстрый способ обновить этот файл, чтобы удалить этот конкретный запрос из всех моих двоичных журналов? У меня есть этот PHP-скрипт, который я тестировал, и он работал с меньшим файлом, но preg_replace казалось, что есть некоторые ограничения (или, может быть, только PHP в целом), когда дело доходит до размера файла.

Вот моя строка PHP:

file_put_contents("/logs/restore.sql",preg_replace("/use(?:.|\n)+?update `notifi(?:.|\n)+?COMMIT\/\*\!\*\/;/mui",'',file_get_contents("/logs/restorex.sql")));

Кажется, что Regex прекрасно работает с меньшим файлом, просто я не так хорошо разбираюсь в других языках (PHP — мой основной язык), чтобы знать, что я должен использовать, или как внедрить это Regex в нечто остальное.

0

Решение

Если вы готовы выбросить все данные в этой таблице,

 ALTER TABLE notifications ENGINE=BLACKHOLE;

Тогда запросы проносятся мимо, потому что они ничего не делают.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]