Odaberite najmanji tip koji ispravno drži svaku vrijednost koju ćete ikada pohraniti. Pravi tip štedi disk, smanjuje indekse i sprječava tiho oštećenje podataka.
Odaberite najmanji tip koji ispravno drži svaku vrijednost koju ćete ikada pohraniti. Pravi tip štedi disk, smanjuje indekse i sprječava tiho oštećenje podataka.
INT (4 bajta) za većinu id-ova; BIGINT (8 bajtova) samo kada uistinu prerastete ~2,1 milijarde.DECIMAL(10,2) za novac — nikada FLOAT/DOUBLE, koji zaokružuju u binarnom obliku i gube cente.VARCHAR(n) za omeđen tekst (imena, e-mailove); n je gornja granica, pohranjuje se samo ono što koristite.TEXT za velike blobove (članke) — pohranjuje se izvan stranice i ne može imati zadanu vrijednost; nemojte ga koristiti za kratke vrijednosti po kojima filtrirate.DATETIME (bez vremenske zone, 8 bajtova) nasuprot TIMESTAMP (pretvoreno u UTC, 4 bajta, granica oko 2038.).CREATE TABLE payments (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
amount DECIMAL(10,2) NOT NULL, -- točan novac, ne FLOAT
currency CHAR(3) NOT NULL, -- uvijek 3 znaka -> fiksni CHAR
note VARCHAR(255), -- omeđeno, indeksabilno
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- Zamka: zadani SQL mode odbija loše vrijednosti (dobro) --
INSERT INTO payments (amount) VALUES ('abc'); -- ERROR 1366, ne tiho 0
FLOAT za novac.VARCHAR(255) posvuda iz navike — predimenzionirani ključevi napuhavaju indekse.UNSIGNED na id-ovima/brojačima koji nikada nisu negativni (udvostručuje pozitivni raspon).Tipovi podataka najjeftinija su odluka o ispravnosti i performansama koju donosite, a najteže ju je kasnije promijeniti — uski, točni tipovi drže indekse malima i zaustavljaju loše podatke na vratima prije nego što postanu produkcijski bug.
Knjižnica IT pitanja za razgovore za posao s detaljnim odgovorima — od Juniora do Seniora.
Doniraj