Chagua type ndogo zaidi inayoweza kushikilia kwa usahihi kila thamani utakayohifadhi. Type sahihi inaokoa disk, inapunguza indexes, na inazuia uharibifu wa data kimyakimya.
Chagua type ndogo zaidi inayoweza kushikilia kwa usahihi kila thamani utakayohifadhi. Type sahihi inaokoa disk, inapunguza indexes, na inazuia uharibifu wa data kimyakimya.
INT (bytes 4) kwa ids nyingi; BIGINT (bytes 8) tu unapozidi kweli ~bilioni 2.1.DECIMAL(10,2) kwa fedha — kamwe FLOAT/DOUBLE, ambazo huzungusha (round) katika binary na kupoteza senti.VARCHAR(n) kwa maandishi yenye kikomo (majina, emails); n ni kikomo, uhifadhi ni kile tu unachotumia.TEXT kwa blobs kubwa (makala) — inahifadhiwa off-page na haiwezi kuwa na default; usiitumie kwa thamani fupi unazozichuja (filter).DATETIME (bila timezone, bytes 8) dhidi ya TIMESTAMP (imebadilishwa kwa UTC, bytes 4, kikomo ~2038).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 kwa fedha.VARCHAR(255) kila mahali kwa mazoea — keys kubwa kupita kiasi zinavimbisha indexes.UNSIGNED kwenye ids/counts ambazo kamwe si hasi (huzidisha maradufu range chanya).Data types ni uamuzi wa bei nafuu zaidi kuhusu usahihi na performance unaoufanya, na mgumu zaidi kuubadilisha baadaye — types finyu na sahihi huweka indexes ndogo na kuzuia data mbaya mlangoni kabla haijawa bug ya production.
Maktaba ya maswali ya mahojiano ya IT yenye majibu ya kina — kutoka Junior hadi Senior.
Changia