PG the text, character varying, character varying(length), character column types are all the same thing with each column type inheriting the properties from the parent type. With each successive type further properties are added but they're all basically just "text" with some additional metadata. If you're coming from other database engines or just general programming languages where text and fixed length string fields are handled differently then the above can seem a bit different form what you're used to. Heck, I can think of one engine where if you have a text column you have to query the table for the blob identifier and then issue a separate call to retrieve it. Here in PG it's literally all the same, handled the same, performs the same. Use what limiters make sense for your application.
On Tue, Apr 28, 2020 at 5:22 AM Rajin Raj <rajin.raj@xxxxxxxxxxx> wrote:
Is there any impact of using the character varying without providing the length while creating tables?I have created two tables and inserted 1M records. But I don't see any difference in pg_class. (size, relpage)
create table test_1(name varchar);
create table test_2(name varchar(50));
insert into test_1 ... 10M records
insert into test_2 ... 10M records
vacuum (full,analyze) db_size_test_1;
vacuum (full,analyze) db_size_test_2;Which option is recommended?Regards,Rajin