Válaszd a legkisebb típust, amely helyesen eltárol minden értéket, amit valaha tárolni fogsz. A megfelelő típus lemezt takarít meg, kisebbre húzza az indexeket, és megelőzi a csendes adatsérülést.
Válaszd a legkisebb típust, amely helyesen eltárol minden értéket, amit valaha tárolni fogsz. A megfelelő típus lemezt takarít meg, kisebbre húzza az indexeket, és megelőzi a csendes adatsérülést.
INT (4 bájt) a legtöbb id-hez; BIGINT (8 bájt) csak akkor, ha valóban túlnősz a ~2,1 milliárdon.DECIMAL(10,2) pénzhez — soha FLOAT/DOUBLE, amelyek binárisan kerekítenek és elveszítik a centeket.VARCHAR(n) korlátos szöveghez (nevek, e-mailek); az n egy felső határ, a tárhely csak annyi, amennyit használsz.TEXT nagy blobokhoz (cikkek) — az oldalon kívül tárolódik és nem lehet default értéke; ne használd rövid értékekhez, amelyekre szűrsz.DATETIME (nincs időzóna, 8 bájt) szemben a TIMESTAMP-pel (UTC-re konvertált, 4 bájt, ~2038-as korlát).CREATE TABLE payments (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
amount DECIMAL(10,2) NOT NULL, -- pontos pénz, nem FLOAT
currency CHAR(3) NOT NULL, -- mindig 3 karakter -> fix CHAR
note VARCHAR(255), -- korlátos, indexelhető
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- Buktató: az alapértelmezett SQL mód elutasítja a hibás értékeket (jó) --
INSERT INTO payments (amount) VALUES ('abc'); -- ERROR 1366, nem csendben 0
FLOAT használata pénzhez.VARCHAR(255) mindenütt megszokásból — a túlméretezett kulcsok felfújják az indexeket.UNSIGNED elfelejtése olyan id-kon/számlálókon, amelyek sosem negatívak (megduplázza a pozitív tartományt).Az adattípusok a legolcsóbb helyességi és teljesítménybeli döntés, amit meghozol, és a legnehezebb később megváltoztatni — a szűk, pontos típusok kicsin tartják az indexeket, és megállítják a hibás adatot az ajtóban, mielőtt production-hibává válna.
IT interjúkérdések gyűjteménye részletes válaszokkal — Juniortól Seniorig.
Adományozás