Valitse pienin tyyppi, joka pitää oikein sisällään jokaisen arvon, jonka koskaan tallennat. Oikea tyyppi säästää levyä, kutistaa indeksejä ja estää hiljaisen datakorruption.
Valitse pienin tyyppi, joka pitää oikein sisällään jokaisen arvon, jonka koskaan tallennat. Oikea tyyppi säästää levyä, kutistaa indeksejä ja estää hiljaisen datakorruption.
INT (4 tavua) useimpiin id-arvoihin; BIGINT (8 tavua) vain kun aidosti ylität ~2,1 miljardia.DECIMAL(10,2) rahalle — ei koskaan FLOAT/DOUBLE, jotka pyöristävät binäärisesti ja menettävät sentit.VARCHAR(n) rajatulle tekstille (nimet, sähköpostit); n on yläraja, tallennustila on vain se mitä käytät.TEXT suurille blob-arvoille (artikkelit) — se tallennetaan sivun ulkopuolelle ja sillä ei voi olla oletusarvoa; älä käytä sitä lyhyisiin arvoihin, joilla suodatat.DATETIME (ei aikavyöhykettä, 8 tavua) vs TIMESTAMP (UTC-muunnettu, 4 tavua, ~2038-raja).CREATE TABLE payments (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
amount DECIMAL(10,2) NOT NULL, -- tarkka raha, ei FLOAT
currency CHAR(3) NOT NULL, -- aina 3 merkkiä -> kiinteä CHAR
note VARCHAR(255), -- rajattu, indeksoitava
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- Sudenkuoppa: oletus-SQL-tila hylkää virheelliset arvot (hyvä) --
INSERT INTO payments (amount) VALUES ('abc'); -- ERROR 1366, ei hiljaisesti 0
FLOAT:n käyttö rahalle.VARCHAR(255) kaikkialla tottumuksesta — ylimitoitetut avaimet paisuttavat indeksejä.UNSIGNED:n unohtaminen id-/laskuriarvoista, jotka eivät koskaan ole negatiivisia (tuplaa positiivisen alueen).Tietotyypit ovat halvin korrektisuus- ja suorituskykypäätös, jonka teet, ja vaikein muuttaa myöhemmin — kapeat, tarkat tyypit pitävät indeksit pieninä ja pysäyttävät virheellisen datan jo ovella ennen kuin siitä tulee tuotantobugi.
Kirjasto IT-haastattelukysymyksiä yksityiskohtaisine vastauksineen — Juniorista Senioriin.
Lahjoita