Сколько памяти занимает одна точка сохранения (в рамках транзакции) в postgresql? Я разрабатываю приложение, которое может создавать значительное количество точек сохранения (более 100 тыс.), и мне интересно, как это скажется на производительности.
решение1
Насколько я знаю, они очень дешевые, как и транзакции в целом. Но я никогда не пробовал создавать 100 тыс. из них.
Вам следует знать, что существует ограничение на размер транзакции (максимум 2^32-1 команд, если я правильно помню), и похоже, что вы приближаетесь к его достижению в своем дизайне. В целом, я бы, вероятно, посчитал дизайн с сотнями тысяч точек сохранения дефектным.
решение2
Я думаю, что лучше всего на это ответить, попробовав это в вашем конкретном приложении. Это не так много для отдельных точек сохранения, но когда вы говорите о 100 тыс.+, эффекты будут накапливаться, и другие факторы также могут вступить в игру.