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
SELECTműveleteknélWHEREésJOINfelté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).