Большинство других ответов здесь сосредоточены на том факте, что VARCHAR хранится способом переменной длины, поэтому он хранит количество байтов строки, которую вы вводите в данную строку, а не максимальную длину поля.
Но во время запросов есть некоторые обстоятельства, когда MySQL преобразует VARCHAR в CHAR - и, следовательно, размер увеличивается до максимальной длины. Это происходит, например, когда MySQL создает временную таблицу во время некоторых операций JOIN или ORDER BY или GROUP BY.
Рассказать обо всех случаях, когда это будет сделано, сложно, потому что это зависит от того, как оптимизатор обрабатывает запрос, зависит от другой структуры таблицы и определяемых вами индексов, зависит от типа запроса и даже от версия MySQL, потому что оптимизатор улучшается с каждой версией.
Короткий ответ - да, он может иметь значение, используете ли вы VARCHAR (255) или VARCHAR (30). Так что определяйте максимальную длину столбца в соответствии с тем, что вам нужно, а не «большой» длиной, например, 255. Ради традиции.