Как удалить одну запись в MySql
Мне нужно постоянно удалять отдельные записи из базы данных MySql (Mssql тоже будет интересно). Под чисткой я подразумеваю необратимо отправить его в забвение.
Мне это нужно либо для соответствия EU-GDPR, а также для клиента, который хочет убедиться, что данные удаляются из MySQL навсегда.
Насколько я понимаю
удалить из таблицы, где id=1
удалит данные из табличного пространства и из индексов, но не из журнала транзакций. Для достижения этого необходимо выполнить сжатие. Но даже чем запись все равно будет существующим двоичным файлом на диске.
Что мне нужно для этого, чтобы действительно и по-настоящему уничтожить эту запись базы данных, чтобы даже Хакер-Иисус не смог ее восстановить.
Я уже думал об этом, и первая идея заключалась в том, чтобы не удалять запись, а перезаписывать данные в столбцах случайными данными. Насколько я понимаю, документация Mysql переписывает физическую память старых данных. Поэтому, если бы существовал столбец secret_column с секретной информацией данных, я бы переписал это с помощью "XXXXXXXXXXX", чтобы сжать базу данных, и старое значение столбца должно быть удалено. Еще одним более безопасным вариантом было бы синхронное шифрование секретной_колонки и сохранение ключа в другом столбце шифрования. Затем, когда я хочу удалить запись, я расшифровываю столбец, создаю временный ключ в памяти, шифрую данные временным ключом и записываю их обратно в базу данных. Это должно уничтожить информацию навсегда - но это невозможно использовать с индексированными столбцами в отношении производительности.
Мне хорошо известен тот факт, что любая резервная копия базы данных все равно будет содержать очищенные данные. Это еще одно чудо, чтобы решить.
Буду признателен за любые идеи или (лучшие) решения этого вопроса. Большое спасибо.