No. No gain at all. The manual explicitly states:
Tip: There is no performance difference among these three types, apart
from increased storage space when using the blank-padded type, and a
few extra CPU cycles to check the length when storing into a
length-constrained column. While
character(n) has performance
advantages in some other database systems, there is no such advantage
in PostgreSQL; in fact
character(n) is usually the slowest of the
three because of its additional storage costs. In most situations
character varying should be used instead.
Bold emphasis mine.
char(n) is a largely outdated, useless type. Stick with
varchar(n). Without need to enforce a maximum length,
text are a tiny bit faster, with fewer complications.
If all strings are exactly 36 characters in length, there is no storage saving either way, not even a minuscule one. Both have exactly the same size on disk and in RAM. You can test with
pg_column_size() (on an expression and on a table column).
And if all strings must have 36 characters, rather make it
text with a
CHECK (length(col) = 36) constraint enforcing exact length, not
varchar(36) only enforcing max. length. See:
You didn't ask for other options, but I'll mention two:
Unless you are running your DB with the "C" collation. Collation is often overlooked and possibly expensive. Since your strings don't seem to be meaningful in a natural language, there is probably no point in following
COLLATION rules. Related:
Extensive benchmark comparing (among other) the effect of
COLLATE "C" on performance:
Your string suspiciously looks like a UUID (32 hex digits separated by 4 delimiters in canonical way). It's much more efficient to store UUIDs as actual
uuid data type: faster in multiple ways, and only occupies 16 bytes per UUID - as opposed to 37 bytes in RAM for either
varchar(36) (stored without delimiters, just the 32 defining characters), or 33 bytes on disk. But alignment padding would result in 40 bytes either way in many cases.)
COLLATION is irrelevant for the
uuid data type, too.
This may be helpful (last chapters):