Prestandamässigt är en int snabbare i nästan alla fall. CPU:n är designad för att fungera effektivt med 32-bitars värden.
Kortare värden är komplicerade att hantera. För att kunna läsa en enstaka byte, till exempel, måste CPU:n läsa 32-bitarsblocket som innehåller den och sedan maskera de övre 24 bitarna.
För att skriva en byte måste den läsa destinationens 32-bitarsblock, skriva över de lägre 8 bitarna med önskat bytevärde och skriva tillbaka hela 32-bitarsblocket igen.
Utrymmesmässigt sparar du förstås några byte genom att använda mindre datatyper. Så om du bygger en tabell med några miljoner rader kan kortare datatyper vara värda att överväga. (Och samma sak kan vara en bra anledning till varför du bör använda mindre datatyper i din databas)
Och korrekt, en int svämmar inte över lätt. Vad händer om du tänker ditt värde kommer att rymmas inom en byte, och någon gång i framtiden innebär en förändring av koden som ser ofarlig ut att större värden lagras i den?
Det är några av anledningarna till att int bör vara din standarddatatyp för all integral data. Använd bara byte om du verkligen vill lagra maskinbyte. Använd bara kortfilmer om du har att göra med ett filformat eller protokoll eller liknande som faktiskt anger 16-bitars heltalsvärden. Om du bara har att göra med heltal i allmänhet, gör dem till ints.