Pilih tipe terkecil yang dapat menampung dengan benar setiap nilai yang akan pernah Anda simpan. Tipe yang tepat menghemat disk, memperkecil index, dan mencegah korupsi data yang senyap.
Pilih tipe terkecil yang dapat menampung dengan benar setiap nilai yang akan pernah Anda simpan. Tipe yang tepat menghemat disk, memperkecil index, dan mencegah korupsi data yang senyap.
INT (4 byte) untuk sebagian besar id; BIGINT (8 byte) hanya ketika Anda benar-benar melampaui ~2,1 miliar.DECIMAL(10,2) untuk uang — jangan pernah FLOAT/DOUBLE, yang membulatkan secara biner dan kehilangan sen.VARCHAR(n) untuk teks yang terbatas (nama, email); n adalah batas atas, penyimpanan hanya sebanyak yang Anda gunakan.TEXT untuk blob besar (artikel) — disimpan off-page dan tidak dapat memiliki default; jangan gunakan untuk nilai pendek yang Anda filter.DATETIME (tanpa timezone, 8 byte) vs TIMESTAMP (dikonversi ke UTC, 4 byte, batas ~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 untuk uang.VARCHAR(255) di mana-mana karena kebiasaan — key yang berukuran berlebihan menggelembungkan index.UNSIGNED pada id/hitungan yang tidak pernah negatif (menggandakan rentang positif).Tipe data adalah keputusan correctness dan performa termurah yang Anda buat, dan paling sulit diubah kemudian — tipe yang sempit dan tepat menjaga index tetap kecil dan menghentikan data buruk di depan pintu sebelum menjadi bug production.
Perpustakaan pertanyaan wawancara IT dengan jawaban mendetail — dari Junior hingga Senior.
Donasi