These indexes are from when a concurrent reindex has failed previously.
When Postgres is performing a concurrent reindex, the new index is created with a _ccnew suffix. Once the new index is rebuilt, the old one is replaced with the new one. If a concurrent reindex fails, the temporary _ccnew index is not deleted.
It is safe to drop these temporary indexes manually with DROP INDEX IF EXISTS ...
As for the index sizes, the 30-50% reduction on the top four is impressive!
If I’m reading correctly, the user_visits index dropped from 13GB down to 503MB, <5% of the original size ![]()