Saklayacağınız her değeri doğru şekilde tutan en küçük tipi seçin. Doğru tip disk tasarrufu sağlar, index'leri küçültür ve sessiz veri bozulmasını önler.
Saklayacağınız her değeri doğru şekilde tutan en küçük tipi seçin. Doğru tip disk tasarrufu sağlar, index'leri küçültür ve sessiz veri bozulmasını önler.
INT (4 bayt); yalnızca gerçekten ~2,1 milyarı aştığınızda BIGINT (8 bayt).DECIMAL(10,2) — ikili tabanda yuvarlayıp kuruş kaybeden FLOAT/DOUBLE asla kullanmayın.VARCHAR(n); n bir üst sınırdır, depolama yalnızca kullandığınız kadardır.TEXT — sayfa dışında saklanır ve default değeri olamaz; filtrelediğiniz kısa değerler için kullanmayın.DATETIME (zaman dilimi yok, 8 bayt) ile TIMESTAMP (UTC'ye dönüştürülür, 4 bayt, ~2038 sınırı) karşılaştırması.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 kullanmak.VARCHAR(255) koymak — aşırı büyük anahtarlar index'leri şişirir.UNSIGNED unutmak (pozitif aralığı iki katına çıkarır).Veri tipleri, yaptığınız en ucuz doğruluk ve performans kararıdır ve sonradan değiştirilmesi en zor olanıdır — dar, kesin tipler index'leri küçük tutar ve kötü verileri bir production hatasına dönüşmeden önce kapıda durdurur.
Junior'dan Senior'a detaylı cevaplarla bir BT mülakat soruları kütüphanesi.
Bağış Yap