EXPLAIN yana nuna shirin da optimizer ya zaɓa — yadda zai shiga kowane tebur — ba tare da gudanar da query ba. Kana karanta shi don tabbatar da an yi amfani da indexes kuma an bincika rows kaɗan.
EXPLAIN yana nuna shirin da optimizer ya zaɓa — yadda zai shiga kowane tebur — ba tare da gudanar da query ba. Kana karanta shi don tabbatar da an yi amfani da indexes kuma an bincika rows kaɗan.
const / eq_ref / ref (index lookups, kyau) → range → index (full index scan) → ALL (full table scan, alamar haɗari).NULL = babu).Using index (covering, kyakkyawa), Using filesort / Using temporary (tsarawa/haɗawa a memory ko a disk — yawanci mai yiwuwar ingantawa).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 ɗin ya mayar da ALL scan na rows 900k zuwa ref seek na 30, kuma saboda created_at shi ne column na biyu, rows suna fitowa an riga an tsara su — filesort ɗin ya ɓace.
Yi amfani da EXPLAIN ANALYZE (MySQL 8) don kuma ganin ainihin lokaci da ƙidayar rows, don kama lokutan da kimanin ya yi kuskure.
EXPLAIN shine yadda kake maye gurbin hasashe da shaida. Gano type: ALL, babban rows, ko Using filesort yana gaya maka daidai inda index ya ɓace — hanya mafi sauri daga "page yana da jinkiri" zuwa gyaran da aka nufa.
Ɗakin karatu na tambayoyin hira na IT tare da amsoshi cikakke — daga Junior zuwa Senior.
Ba da Gudummawa