what is the harm using varchar(x)?
===

As what the document says, mysql does not allocate the full space you specify for varchar. It stores the actual length of data. So I guess there might also be side effects out there. Like if the original length of a varchar record is 10, Now I want to update it to 20 which still does not reach the specified limit 50. However, the space allocated previously is not enough now. 
So my question is how MySQL deal with situation like this? Will it take long to move everything following that record? or does it have to do that?
Is that anyone can tell me how it works internally? Thanks in advance!