文字列が 1 ~ 50 文字であることが保証されている場合、長さ X までの文字列に対して同じクエリを実行すると、varchar(X) と varchar(MAX) を使用した方が高速になります。さらに、varchar(MAX) フィールドにインデックスを作成することはできません。
行の長さが 8000 文字を超える値を持つと、対処すべき追加のパフォーマンス上の考慮事項があります (行は基本的に varchar(n) ではなく TEXT として扱われます)。ただし、8000 を超える長さの文字列には varchar(N) オプションがないため、これは比較としてあまり関係ありません。