మీరు ఎప్పుడైనా నిల్వ చేసే ప్రతి value ను సరిగ్గా పట్టగల అతి చిన్న type ను ఎంచుకోండి. సరైన type disk ను ఆదా చేస్తుంది, indexes ను చిన్నదిగా చేస్తుంది, మరియు silent data corruption ను నివారిస్తుంది.
మీరు ఎప్పుడైనా నిల్వ చేసే ప్రతి value ను సరిగ్గా పట్టగల అతి చిన్న type ను ఎంచుకోండి. సరైన type disk ను ఆదా చేస్తుంది, indexes ను చిన్నదిగా చేస్తుంది, మరియు silent data corruption ను నివారిస్తుంది.
INT (4 bytes); మీరు నిజంగా ~2.1 billion ను దాటినప్పుడు మాత్రమే BIGINT (8 bytes).DECIMAL(10,2) — ఎప్పటికీ FLOAT/DOUBLE కాదు, ఇవి binary లో round అవుతాయి మరియు cents కోల్పోతాయి.VARCHAR(n); n అనేది ఒక పరిమితి, storage మీరు ఉపయోగించినంతే.TEXT — ఇది off-page లో నిల్వ చేయబడుతుంది మరియు default కలిగి ఉండలేదు; మీరు filter చేసే short values కు దీన్ని ఉపయోగించవద్దు.DATETIME (timezone లేదు, 8 bytes) vs TIMESTAMP (UTC-converted, 4 bytes, ~2038 limit).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) — oversized keys indexes ను ఉబ్బిస్తాయి.UNSIGNED ను మర్చిపోవడం (positive range ను రెట్టింపు చేస్తుంది).Data types అనేవి మీరు తీసుకునే అత్యంత చౌకైన correctness మరియు performance నిర్ణయం, మరియు తర్వాత మార్చడానికి అత్యంత కష్టమైనవి — narrow, exact types indexes ను చిన్నగా ఉంచుతాయి మరియు bad data ను production bug గా మారకముందే గుమ్మం వద్దే ఆపుతాయి.
జూనియర్ నుండి సీనియర్ వరకు వివరణాత్మక సమాధానాలతో IT ఇంటర్వ్యూ ప్రశ్నల లైబ్రరీ.
విరాళం