По отношение на производителността, int е по-бърз в почти всички случаи. Процесорът е проектиран да работи ефективно с 32-битови стойности.
По-кратките стойности са сложни за справяне. За да прочете един байт, да речем, процесорът трябва да прочете 32-битовия блок, който го съдържа, и след това да маскира горните 24 бита.
За да запише байт, той трябва да прочете целевия 32-битов блок, да презапише по-ниските 8 бита с желаната стойност на байта и да запише отново целия 32-битов блок.
По отношение на пространството, разбира се, спестявате няколко байта, като използвате по-малки типове данни. Така че, ако изграждате таблица с няколко милиона реда, тогава може да си струва да обмислите по-кратките типове данни. (И същото може да е добра причина да използвате по-малки типове данни във вашата база данни)
И по отношение на коректността, int не прелива лесно. Ами ако мислите вашата стойност ще се побере в рамките на един байт и след това в някакъв момент в бъдеще някаква безобидна промяна в кода означава, че в него ще се съхраняват по-големи стойности?
Това са някои от причините, поради които int трябва да бъде вашият тип данни по подразбиране за всички интегрални данни. Използвайте байт само ако наистина искате да съхранявате машинни байтове. Използвайте шорти само ако имате работа с файлов формат или протокол или подобен, който всъщност определя 16-битови цели числа. Ако работите само с цели числа като цяло, направете ги ints.