Для целочисленных типов вы экономите место в строке, если вы используете целое число из одного байта / двух байтов вместо целого числа из четырех или восьми байтов, когда это уместно. Это оказывает ощутимое влияние на таблицы с большими объемами данных, так как на странице будет помещаться больше строк.
Для типов символов я действительно не уверен, будет ли это иметь значение или нет, если вы контролируете как БД, так и код. Но рассмотрим разделение труда, при котором разработчик базы данных говорит разработчику программного обеспечения: «Эй, не позволяйте людям вводить более 100 символов в это поле, это было бы полной тратой». Вы реализуете это, устанавливая лимит, в котором, если это был varchar (255), люди вполне могут потратить впустую пространство.