On 8/19/25 21:47, Ertan Küçükoglu wrote:
Hello,

I am using PostgreSQL 17.6.
I would like to learn if there is any benefit of using domains over data types for table column definitions in terms of performance gain/loss.

For example I might have table defined as below
create table test (
   a integer,
   b integer,
   c integer,
   d varchar(5)
);

I might also have ame table defined as below

create domain aint integer;
create domain s5 varchar(5);

create table test_domain (
   a aint,
   b aint,
   c aint,
   d s5
);

Does the second table have any technical advantage/disadvantage over plain data type definition?
Less metadata in memory? High metadata in memory? Less/increased disk space?

See:

https://www.postgresql.org/docs/current/catalog-pg-type.html

for what is stored in system catalog for a domain vs a base type.

Personally I don't see that integer --> aint really helps.
Also I am pretty sure varchar(5) --> s5 is still going to result in a length check.


Thanks & Regards,
Ertan


--
Adrian Klaver
adrian.kla...@aklaver.com


Reply via email to