Velg den minste typen som korrekt rommer alle verdier du noen gang kommer til å lagre. Riktig type sparer diskplass, krymper indekser og hindrer stille datakorrupsjon.
Velg den minste typen som korrekt rommer alle verdier du noen gang kommer til å lagre. Riktig type sparer diskplass, krymper indekser og hindrer stille datakorrupsjon.
INT (4 byte) for de fleste id-er; BIGINT (8 byte) bare når du faktisk vokser forbi ~2,1 milliarder.DECIMAL(10,2) for penger — aldri FLOAT/DOUBLE, som avrunder binært og mister øre.VARCHAR(n) for avgrenset tekst (navn, e-poster); n er et tak, lagringen er bare det du faktisk bruker.TEXT for store blober (artikler) — den lagres off-page og kan ikke ha en default; ikke bruk den for korte verdier du filtrerer på.DATETIME (ingen tidssone, 8 byte) vs TIMESTAMP (UTC-konvertert, 4 byte, ~2038-grense).CREATE TABLE payments (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
amount DECIMAL(10,2) NOT NULL, -- exact money, not FLOAT
currency CHAR(3) NOT NULL, -- always 3 chars -> fixed CHAR
note VARCHAR(255), -- bounded, indexable
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- Pitfall: the default SQL mode rejects bad values (good) --
INSERT INTO payments (amount) VALUES ('abc'); -- ERROR 1366, not silently 0
FLOAT for penger.VARCHAR(255) overalt av vane — for store nøkler blåser opp indekser.UNSIGNED på id-er/tellere som aldri er negative (dobler det positive området).Datatyper er den billigste korrekthets- og ytelsesbeslutningen du tar, og den vanskeligste å endre senere — smale, eksakte typer holder indeksene små og stopper dårlige data i døra før de blir en produksjonsfeil.
Et bibliotek av IT-intervjuspørsmål med detaljerte svar — fra Junior til Senior.
Doner