Junior — Middle
Hogyan határozzuk meg az indexelési mezőket, ha a lekérdezések lassúak és több mezőt érintenek?
sobes.tech MI
Válasz az MI-től
Hogy meghatározzuk, mely mezőket indexeljük lassú lekérdezéseknél, amelyek több mezőt érintenek, a következőket kell tenni:
- Elemzni kell a lekérdezés végrehajtási tervét (EXPLAIN vagy EXPLAIN ANALYZE SQL-ben) — megérteni, mely műveletek tartanak a legtöbbet.
- Azonosítani kell azokat a mezőket, amelyek szerepelnek a WHERE, JOIN, ORDER BY, GROUP BY feltételekben — mivel ezek befolyásolják az indexek kiválasztását.
- Fontolóra kell venni összetett (multi-kolumnás) indexek létrehozását, ha a lekérdezések több mező szerint szűrnek egyidejűleg.
- Ellenőrizni kell a mezők szelektivitását — az index hatékony, ha a mező magas szelektivitással rendelkezik (sok egyedi érték).
Például, ha a lekérdezés:
SELECT * FROM orders WHERE customer_id = ? AND order_date > ?;
ajánlott összetett indexet létrehozni (customer_id, order_date)-on.
Fontos, hogy ne hozzon túl sok indexet, hogy ne lassítsa az beszúrási és frissítési műveleteket.