Διάλεξε τον μικρότερο τύπο που χωράει σωστά κάθε τιμή που θα αποθηκεύσεις ποτέ. Ο σωστός τύπος εξοικονομεί disk, μικραίνει τα indexes και αποτρέπει τη σιωπηλή καταστροφή δεδομένων.
Διάλεξε τον μικρότερο τύπο που χωράει σωστά κάθε τιμή που θα αποθηκεύσεις ποτέ. Ο σωστός τύπος εξοικονομεί disk, μικραίνει τα indexes και αποτρέπει τη σιωπηλή καταστροφή δεδομένων.
INT (4 bytes) για τα περισσότερα ids· BIGINT (8 bytes) μόνο όταν πραγματικά ξεπερνάς τα ~2.1 δισεκατομμύρια.DECIMAL(10,2) για χρήματα — ποτέ FLOAT/DOUBLE, που στρογγυλοποιούν σε δυαδική μορφή και χάνουν σεντς.VARCHAR(n) για κείμενο με όριο (ονόματα, emails)· το n είναι ανώτατο όριο, ο χώρος αποθήκευσης είναι μόνο όσος χρησιμοποιείς.TEXT για μεγάλα blobs (άρθρα) — αποθηκεύεται off-page και δεν μπορεί να έχει default· μην το χρησιμοποιείς για μικρές τιμές πάνω στις οποίες κάνεις filter.DATETIME (χωρίς timezone, 8 bytes) έναντι TIMESTAMP (μετατροπή σε UTC, 4 bytes, όριο ~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 για χρήματα.VARCHAR(255) παντού από συνήθεια — υπερμεγέθη keys φουσκώνουν τα indexes.UNSIGNED σε ids/μετρητές που δεν είναι ποτέ αρνητικοί (διπλασιάζει το θετικό εύρος).Οι data types είναι η φθηνότερη απόφαση ορθότητας και επιδόσεων που παίρνεις, και η δυσκολότερη να αλλάξεις αργότερα — στενοί, ακριβείς τύποι κρατούν τα indexes μικρά και σταματούν τα κακά δεδομένα στην πόρτα πριν γίνουν production bug.
Μια βιβλιοθήκη ερωτήσεων συνέντευξης IT με αναλυτικές απαντήσεις — από Junior έως Senior.
Δωρεά