Chris Velevitch wrote:
If I insert a record into a table with a serial primary key, does select currval fetch it from the database or does it get it from within memory? If it fetches it from the database, should I use a Serializable transaction or just a read committed transaction?
You can control the level of caching, but you'll have to be pushing it for the serial to be a large part of your overheads. Each sequence is a small table - you can do "SELECT * FROM my_seq" and see the "insides".
You don't need to worry about transaction isolation for sequences, you are always guaranteed a new value. The price you pay for this is that there might be gaps in the series of values you get.
-- Richard Huxton Archonet Ltd