તમે ક્યારેય સંગ્રહશો તે દરેક value ને યોગ્ય રીતે સમાવી શકે તેવો સૌથી નાનો type પસંદ કરો. યોગ્ય type disk બચાવે છે, indexes ને નાનાં કરે છે, અને ચૂપચાપ થતી data corruption ને અટકાવે છે.
તમે ક્યારેય સંગ્રહશો તે દરેક value ને યોગ્ય રીતે સમાવી શકે તેવો સૌથી નાનો type પસંદ કરો. યોગ્ય type disk બચાવે છે, indexes ને નાનાં કરે છે, અને ચૂપચાપ થતી data corruption ને અટકાવે છે.
INT (4 bytes); BIGINT (8 bytes) ફક્ત ત્યારે જ જ્યારે તમે ખરેખર ~2.1 billion ને વટાવો.DECIMAL(10,2) — ક્યારેય નહીં FLOAT/DOUBLE, જે binary માં round કરે છે અને cents ગુમાવે છે.VARCHAR(n); n એ cap છે, storage તમે જેટલું વાપરો એટલું જ.TEXT — તે off-page સંગ્રહાય છે અને default રાખી શકતું નથી; જે ટૂંકી values પર તમે filter કરો છો તેમના માટે તેને ન વાપરો.DATETIME (કોઈ timezone નહીં, 8 bytes) vs 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 ભૂલી જવું (સકારાત્મક range બમણી કરે છે).Data types એ સૌથી સસ્તો correctness અને performance નિર્ણય છે જે તમે લો છો, અને પછીથી બદલવો સૌથી અઘરો — સાંકડા, ચોક્કસ types indexes ને નાનાં રાખે છે અને ખરાબ ડેટા production bug બને એ પહેલાં જ દરવાજે અટકાવે છે.
વિગતવાર જવાબો સાથે IT ઇન્ટરવ્યૂ પ્રશ્નોની લાઇબ્રેરી — જુનિયરથી સિનિયર સુધી.
દાન કરો