Sobes.tech
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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.