Z hlediska výkonu je int rychlejší téměř ve všech případech. CPU je navrženo tak, aby efektivně pracovalo s 32bitovými hodnotami.
S kratšími hodnotami je složité se vypořádat. Aby mohl procesor přečíst jeden bajt, řekněme, musí přečíst 32bitový blok, který jej obsahuje, a poté zamaskovat horních 24 bitů.
Aby mohl zapsat bajt, musí přečíst cílový 32bitový blok, přepsat spodních 8 bitů požadovanou hodnotou bajtu a zapsat celý 32bitový blok znovu.
Prostorově samozřejmě ušetříte pár bajtů použitím menších datových typů. Pokud tedy vytváříte tabulku s několika miliony řádků, pak mohou stát za zvážení kratší datové typy. (A totéž může být dobrý důvod, proč byste měli ve své databázi používat menší datové typy)
A pokud jde o správnost, int nepřeteče snadno. Co když myslíte vaše hodnota se vejde do jednoho bajtu a pak někdy v budoucnu nějaká neškodně vypadající změna kódu znamená, že se do něj uloží větší hodnoty?
To jsou některé z důvodů, proč by int měl být vaším výchozím datovým typem pro všechna integrální data. Bajt používejte pouze v případě, že skutečně chcete ukládat bajty stroje. Zkratky používejte pouze v případě, že máte co do činění s formátem souboru nebo protokolem nebo podobným, který ve skutečnosti určuje 16bitové celočíselné hodnoty. Pokud se zabýváte pouze celými čísly obecně, udělejte z nich ints.