It depends on what type of data you are storing and the size of the data. If the data is frequently retrieved then storing it with "varchar" type is acceptable.
But, If the data is too large. It is obvious that to use the datatype "text".
You should use :
varchar - If the data is of string type(which won't be too large).
(e.g) UserName, Email, Country etc..,
text - If the data is too large and consists complex types(int + string) of data.
(e.g) Messages, Logs ..,
you can also use "mediumtext" and "largetext" as and when they are required.
when you are storing some "json" objects as string you can use medium text. And if you are going to store some large arrays of "json" consider using "largetext".
You should consider the above cases, Before choosing the datatype which will affect your performance.
Conclusion:
Large amount of small data - var
Small amount of large data - text
I also advise you to visit this link