Depends on goals of your benchmarking.
What are you trying to achieve?
Initialization and vacuuming each time will help achieve more consistent best-case numbers (to reduce variance, I'd also destroy cluster completely and clean up hardware, e.g. run fstrim in case of SSD, etc).
If you are however after real-world numbers, you may want to initialize once and run pgbench for hours if not days to get full effects of autovaccuum and other possible background processes.
Hi,
I have a couple of questions regarding pgbench. I'm new to PostgreSQL and databases in general, so these might be very trivial questions.
1. Is it necessary to initialize pgbench(-i option) before every run to get consistent results?
2. The vacuuming process after initialize consumes time, what are the ill effects of disabling post-initialize vacuuming?
Thanks,
Anirudh