Alege cel mai mic tip care conține corect fiecare valoare pe care o vei stoca vreodată. Tipul potrivit economisește spațiu pe disc, micșorează indecșii și previne coruperea silențioasă a datelor.
Alege cel mai mic tip care conține corect fiecare valoare pe care o vei stoca vreodată. Tipul potrivit economisește spațiu pe disc, micșorează indecșii și previne coruperea silențioasă a datelor.
INT (4 octeți) pentru majoritatea id-urilor; BIGINT (8 octeți) doar când chiar depășești ~2,1 miliarde.DECIMAL(10,2) pentru bani — niciodată FLOAT/DOUBLE, care rotunjesc în binar și pierd bani.VARCHAR(n) pentru text mărginit (nume, email-uri); n este o limită superioară, iar stocarea ocupă doar ce folosești.TEXT pentru blob-uri mari (articole) — este stocat off-page și nu poate avea un default; nu-l folosi pentru valori scurte după care filtrezi.DATETIME (fără fus orar, 8 octeți) vs TIMESTAMP (convertit la UTC, 4 octeți, limită ~2038).CREATE TABLE payments (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
amount DECIMAL(10,2) NOT NULL, -- bani exacți, nu FLOAT
currency CHAR(3) NOT NULL, -- mereu 3 caractere -> CHAR fix
note VARCHAR(255), -- mărginit, indexabil
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- Capcană: modul SQL implicit respinge valorile greșite (bine) --
INSERT INTO payments (amount) VALUES ('abc'); -- ERROR 1366, nu 0 în tăcere
FLOAT pentru bani.VARCHAR(255) peste tot din obișnuință — cheile supradimensionate umflă indecșii.UNSIGNED pe id-uri/contoare care nu sunt niciodată negative (dublează intervalul pozitiv).Tipurile de date sunt cea mai ieftină decizie de corectitudine și performanță pe care o iei și cea mai greu de schimbat ulterior — tipurile înguste și exacte țin indecșii mici și opresc datele greșite la ușă înainte să devină un bug în producție.
O bibliotecă de întrebări de interviu IT cu răspunsuri detaliate — de la Junior la Senior.
Donează