удалять против придать статус "удаленных" зависит от контекста. Если строка не нужна, то конечно удалять.
обычно есть таблица оперативных данных, где удаление строки происхоит в транзакции, а накопление строк с статусом "удалено" и временем операции происходит в накопителях. процедура записи в накопитель происходит либо в триггере, либо в линейке команд,
иногда происходит так что данные принимаются в накопитель, с целью максимизации скорости записи индивидуальных или небольших групп строк, после чего включается линия команд обрабатывающий значительный массив данных, чтобы максимизировать возможности субд, с целью обработки данных, и как результат операции удаляются / добавляются строки в конечной таблице для оперативной подачи высоко - интеллектуальных данных. так приходится строить архитектуру, когда субд дорогая, например Azure Parallel Data Warehouse, а её пиковая производительность для пользователя требует плоских полностью денормализованых строк, выбираемых по единому, стандартному ключу. эти сложности оправдываются когда стоимость хранлища и процессора отступает на второй план перед необходимостью одновременного доступa к огромным массивам данных
в последнем случае, представьте себе завод, где допустим сначала шлют в субд строку "кран под номером один, учесть для трубы номер 2..." через час на стенде кран лопается во время испытаний. кран меняют, в базуи шлют "удалить зпись кран №1". В этом случае статус "удалить" несет нагрузку сродни команды.