DBMail 2 hammers PostgreSQL pretty hard because each message is first
delivered to the internal delivery user, processed if needed, and then
messages and physmessages are created for each real recipient. Finally the
message and physmessage for the delivery user is deleted. This means that
each message causes at least one DELETE. I believe this is what causes the
need for heavy vacuuming in PostgreSQL.

So, a detail that I hope a PostgreSQL person can answer definitively: will
wrapping the delivery into a transaction prevent rows that are eventually
deleted from even hitting the database? That would probably completely
alleviate the need for heavy vacuuming.

Aaron

Reply via email to