David,
> What also seems weird to me is that the control table has some unique
> indexes created on it, but the data_upate_events table just has a unique
> constraint. Will postgres use an index in the background to enforce
> this constraint?
If you somehow have a unique constraint without a unique index, something is
seriously broken. I suspect hacking of system tables.
Otherwise, it sounds like you have index bloat due to mass deletions. Run
REINDEX, or, preferably, VACUUM FULL and then REINDEX.
--
Josh Berkus
Aglio Database Solutions
San Francisco