EXPLAIN optimizer એ પસંદ કરેલો plan બતાવે છે — તે દરેક table ને કેવી રીતે access કરશે — query ચલાવ્યા વગર. તમે તેને indexes વપરાય છે અને થોડી rows તપાસાય છે તેની ખાતરી કરવા વાંચો છો.
EXPLAIN optimizer એ પસંદ કરેલો plan બતાવે છે — તે દરેક table ને કેવી રીતે access કરશે — query ચલાવ્યા વગર. તમે તેને indexes વપરાય છે અને થોડી rows તપાસાય છે તેની ખાતરી કરવા વાંચો છો.
const / eq_ref / ref (index lookups, સારાં) → range → index (full index scan) → ALL (full table scan, red flag).NULL = કોઈ નહીં).Using index (covering, ઉત્તમ), Using filesort / Using temporary (memory માં કે disk પર sorting/grouping — ઘણી વાર optimize કરી શકાય).EXPLAIN SELECT * FROM orders WHERE customer_id = 42 ORDER BY created_at;
-- +------+------+------+---------+--------+----------------+
-- | type | key | rows | Extra |
-- | ALL | NULL | 900k | Using where; Using filesort | <- scans everything, sorts
-- +------+------+------+---------+--------+----------------+
-- Add an index that covers the filter AND the sort order:
CREATE INDEX idx_cust_created ON orders (customer_id, created_at);
EXPLAIN SELECT * FROM orders WHERE customer_id = 42 ORDER BY created_at;
-- | type | key | rows | Extra |
-- | ref | idx_cust_created | 30 | Using where | <- seeks 30 rows, no filesort
index એ 900k rows ના ALL scan ને 30 નાં ref seek માં ફેરવ્યું, અને કારણ કે created_at બીજું column છે, rows પહેલેથી-sorted નીકળે છે — filesort અદૃશ્ય થઈ જાય છે.
actual timing અને row counts પણ જોવા માટે EXPLAIN ANALYZE (MySQL 8) વાપરો, જે અંદાજ ખોટો હોય તેવા કિસ્સા પકડે છે.
EXPLAIN એ રીત છે જેનાથી તમે અનુમાનને પુરાવાથી બદલો છો. type: ALL, વિશાળ rows, કે Using filesort જોવાથી તમને ચોક્કસ કહે છે કે index ક્યાં ખૂટે છે — "page ધીમું છે" થી targeted fix સુધીનો સૌથી ઝડપી માર્ગ.
વિગતવાર જવાબો સાથે IT ઇન્ટરવ્યૂ પ્રશ્નોની લાઇબ્રેરી — જુનિયરથી સિનિયર સુધી.
દાન કરો