Unless you absolutely restrict the width of a text column for data consistency reason, don't do it.
This
benchmark
shows that there's fundamentally no difference in performance between
char(n), varchar(n), varchar and text. Here's why you should pick
text:
char(n): takes more space than necessary when dealing with values shorter than n.varchar(n): it's difficult to change the width.varcharis just liketext.textdoes not have the width problem thatchar(n)andvarchar(n)and has a cleaner name thanvarchar.