I wouldn't worry about it too much, unless you are noticing serious database lag on simple queries. Whenever it comes to integer fields, I just use INT (with the default length of 11). As for text fields, in MySQL, I use the TEXT type - not VARCHAR; basically, this boils down to laziness on my part. However, I would use VARCHAR in cases where I know the data in that field must
be a specific size (ie. phone numbers, alphanumeric employee IDs, etc.).
Really, in my thinking, it would seem as though should you want to maintain peppiness in your SQL queries, balance the load between your database and your front-end (whatever it may be). For example, at work, we have one server where its sole purpose is to be a MySQL server, and we have a second server which is solely for Apache - if it comes to an area of any of my programs where there is always a possibility of a MASSIVE query being made to the server, I do rough query matching on the MySQL side, and then fine-tune the results in PHP on the Apache server.
One of my co-workers does not agree with my "brutish load balancing technique" but I am not the one always having to make excuses as to why my PHP programs run so slowly on seemingly "simple" tasks.