Есть ли какие-либо опасности, такие как снижение производительности базы данных, несогласованность данных или что-то ещё? Или единственная опасность заключается в невозможности восстановить навсегда удалённые сообщения?
Дело лишь в том, что после удаления пост исчезает навсегда и не может быть восстановлен. Проблем с производительностью нет.
На самом деле у меня вопрос наоборот: не приводит ли в Discourse «мягкое» удаление постов вместо их постоянного удаления к снижению производительности? Для некоторых форумов за несколько лет должна накапливаться определённая нагрузка. Делается ли так для того, чтобы сохранять статистику по каждому аккаунту, даже когда посты или темы удаляются?
Не совсем. Индексы B-дерева позволяют искать посты и темы за O(log n), поэтому рост затрат сублинеарен.
В крупнейших существующих инстансах Discourse количество постов никогда не было узким местом производительности в продакшене. Тем не менее мы следим за этим и при необходимости всегда можем вернуться и провести рефакторинг.
Коротко: нет.
Прежде всего, я считаю, что в большинстве сообществ видимых постов значительно больше, чем удалённых. Например, здесь, на Meta, общее количество постов составляет 1 015 386, и лишь 81 480 из них удалены. Это менее 10%. Вероятно, общий объём удалённых данных составляет менее 100 МБ.
Как сказал Фалько, влияние на производительность от хранения и индексации большего объёма данных ничтожно. Системы баз данных оптимизированы для хранения гораздо большего количества данных, чем можно представить, и даже самые простые конфигурации способны удерживать тысячи и тысячи точек данных без малейшего напряжения.
Возможно, это не самое удачное сравнение в мире, но замечаете ли вы, что ваш ПК становится медленнее по мере накопления файлов? Скорее всего, нет. А файловая система — это тоже своего рода система баз данных. ![]()