> It seems vacuum_mem does not have performance
> effect at all.
Wrong conclusion. It implies that your test case takes less than 64M of
memory to track your removed tuples. I think it takes 8 bytes to track a
tuple for vacuuming an index, which means it should be able to track
800000 deletions. Since you're demonstration had 750000 for removal,
it's under the limit.
Try your test again with 32MB; it should make a single sequential pass
on the table, and 2 passes on each index for that table.
Either that, or do a few more aborted updates.