Vælg den mindste type, der korrekt kan rumme enhver værdi, du nogensinde kommer til at gemme. Den rigtige type sparer diskplads, formindsker indekser og forhindrer tavs datakorruption.
Vælg den mindste type, der korrekt kan rumme enhver værdi, du nogensinde kommer til at gemme. Den rigtige type sparer diskplads, formindsker indekser og forhindrer tavs datakorruption.
INT (4 bytes) til de fleste id'er; BIGINT (8 bytes) kun når du reelt vokser ud over ~2,1 milliarder.DECIMAL(10,2) til penge — aldrig FLOAT/DOUBLE, som runder binært og mister ører.VARCHAR(n) til afgrænset tekst (navne, e-mails); n er en øvre grænse, lageret er kun det, du bruger.TEXT til store blobs (artikler) — det gemmes off-page og kan ikke have en default; brug det ikke til korte værdier, du filtrerer på.DATETIME (ingen tidszone, 8 bytes) vs. TIMESTAMP (UTC-konverteret, 4 bytes, ~2038-grænse).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 til penge.VARCHAR(255) overalt af vane — overdimensionerede nøgler puster indekser op.UNSIGNED på id'er/tællere, der aldrig er negative (fordobler det positive interval).Datatyper er den billigste beslutning om korrekthed og ydeevne, du træffer, og den sværeste at ændre senere — snævre, præcise typer holder indekser små og stopper dårlige data ved døren, før de bliver en produktionsbug.
Et bibliotek af IT-interviewspørgsmål med detaljerede svar — fra Junior til Senior.
Donér