[PERFORM] char(N), varchar(N), varchar, text

2014-10-08 Thread Emi Lu

  
  
Good morning, 
  
  For performance point of view, are there big differences between:
  char(N), varchar(N), varchar, text? 

Some comments from google shows: 
No difference, under the hood it's all varlena. Check this
article from Depesz: http://www.depesz.com/index.php/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/
A couple of highlights:


 
  To sum it all up:
   
  
char(n)  takes too much space when dealing with
values shorter than n, and can lead to subtle errors because
of adding trailing spaces, plus it is problematic to change
the limit
varchar(n)  it's problematic to change the limit in
live environment
varchar  just like text
text  for me a winner  over (n) data types because
it lacks their problems, and over varchar  because it has
distinct name
  
  
So, can I assume no big performance differences? 
Thanks alot!
Emi
  
  




Re: [PERFORM] char(N), varchar(N), varchar, text

2014-10-08 Thread Andrew Dunstan


On 10/08/2014 10:22 AM, Emi Lu wrote:

Good morning,

For performance point of view, are there big differences between: 
char(N), varchar(N), varchar, text?


Some comments from google shows:
No difference, under the hood it's all varlena. Check this article 
from Depesz: 
http://www.depesz.com/index.php/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/

A couple of highlights:

To sum it all up:

  * char(n) – takes too much space when dealing with values
shorter than n, and can lead to subtle errors because of
adding trailing spaces, plus it is problematic to change the limit
  * varchar(n) – it's problematic to change the limit in live
environment
  * varchar – just like text
  * text – for me a winner – over (n) data types because it lacks
their problems, and over varchar – because it has distinct name

So, can I assume no big performance differences?
Thanks alot!
Emi




Why do you need to ask if you already have the answer? Depesz is right.

cheers

andrew


--
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance


Re: [PERFORM] char(N), varchar(N), varchar, text

2014-10-08 Thread Emi Lu






For performance point of view, are there big differences between: 
char(N), varchar(N), varchar, text?


Some comments from google shows:
No difference, under the hood it's all varlena. Check this article 
from Depesz: 
http://www.depesz.com/index.php/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/

A couple of highlights:

To sum it all up:

  * char(n) – takes too much space when dealing with values
shorter than n, and can lead to subtle errors because of
adding trailing spaces, plus it is problematic to change the 
limit

  * varchar(n) – it's problematic to change the limit in live
environment
  * varchar – just like text
  * text – for me a winner – over (n) data types because it lacks
their problems, and over varchar – because it has distinct name

So, can I assume no big performance differences?
Thanks alot!
Emi




Why do you need to ask if you already have the answer? Depesz is right.
Good to hear this. Well, sorry I saw the time is:/2010/03 (might changes 
for diff/newer versions).


Thank you for the confirmation.
Emi



--
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance