I have had some performance problems recently on very large tables (10s of millions of rows). A vacuum full did make a large improvement and then dropping & re-creating the indexes also was very beneficial. My performance problem has now been solved.
My question is: will using the contrib/reindexdb or REINDEX sql command do essentially the same job as dropping and re-creating the indexes. I.E. do you get a fully compacted and balanced index? If so then I could use contrib/reindexdb or REINDEX instead of drop/recreate.
How is concurrency handled by contrib/reindexdb and REINDEX (I know you can create an index on the fly with no obvious lock outs)?