Sobes.tech
Junior

Mi az indexelés az adatbázisok vagy gyűjtemények kontextusában?

sobes.tech MI

Válasz az MI-től

A indexelés egy olyan technika, amely a teljesítmény optimalizálását szolgálja az adatok kinyerése során.

Adatbázisokban az index egy struktúra (például B-fa), amely lehetővé teszi, hogy gyorsan megtaláljuk a sorokat egy táblában anélkül, hogy az egész táblát átnéznénk. Egy vagy több oszlopon hozható létre.

Gyűjteményekben (például a Java ArrayList-jében) az indexelés lényegében beépített. Az elemek rendezett sorozatban tárolódnak, és bármely elemhez index (sorszám) szerint hozzáférni O(1) időben lehet.

Az indexelés fő céljai:

  • A lekérdezések gyorsítása: Különösen a SELECT műveleteknél WHERE és JOIN feltételekkel.
  • Egységesség biztosítása: Az egyedi indexek garantálják, hogy az indexelt oszlop vagy oszlopkombináció értékei egyediek legyenek.
  • Rendezés támogatása: Az indexek gyors rendezést tesznek lehetővé (ORDER BY).

SQL példák:

-- Index létrehozása az ár oszlopon
CREATE INDEX idx_products_price ON products (price);

-- Összetett index létrehozása a customer_id és order_date oszlopokon
CREATE INDEX idx_orders_customer_date ON orders (customer_id, order_date);

Az indexelés hátrányai:

  • További tárhelyet foglal el.
  • A módosítási műveletek (INSERT, UPDATE, DELETE) lassabbak lesznek, mivel az indexet is frissíteni kell.
  • Nem mindig használja a lekérdezés-optimalizáló (pl. teljes táblaszkennelés esetén).