...
> The reason I mention foreign keys above is that I imagine that foreign
> keys might complicate locking issues and I use them a _lot_. I also
> noticed that the database slows down significantly as it gets populated.
> When I get to about 8000 transactions (~8000 records in my primary table)
> it is much slower, and by 19k it takes up to 5-15 seconds to do an insert.
> A "vacuum analyze" didn't help here.
But appropriate indices should help. Updates which require sequential
scans are expensive as tables get bigger, and the scaling problem you
describe is the usual symptom of missing indices.
Use "explain" and examine your queries to tune the performance.
- Thomas