Middle+
Mikor hatékonyabb a teljes adatkészlet átvizsgálása, mint az index szerinti hozzáférés?
sobes.tech MI
Válasz az MI-től
Amikor a feldolgozandó rekordok aránya elég magas (például több mint 10-20%), hogy az index keresés és az egyes adatblokkok olvasásának költségei meghaladják az előnyöket.
Egyéb esetek:
- Megfelelő index hiánya: Ha nincs olyan index, amely lefedi a szűrőmezőket vagy gyorsabb hozzáférést biztosít az adatokhoz, mint a teljes szkennelés.
- Adatok egyenetlen eloszlása (skew): Ha az indexelt mező alacsony kardinalitású, és az adatok nagy része néhány értékhez koncentrálódik, a szkennelés gyorsabb lehet, mint sok azonos értéket tartalmazó indexlapot végigjárni.
- Kis adathalmaz: Kis táblák esetén az index fenntartási és használati költségei meghaladhatják az előnyöket.
- Szekvenciális olvasás: A teljes szkennelés általában szekvenciális olvasást jelent a lemezen, ami gyorsabb lehet, mint véletlenszerű olvasás indexen keresztül, különösen HDD-n.
- Nagy adatmennyiség egy sorban: Ha minden sor nagy mennyiségű adatot tartalmaz, az egész adatkészlet egyszeri olvasása hatékonyabb lehet, mint többszöri hozzáférés a lemezhez az egyes sorok indexen keresztüli eléréséhez.
Példa, amikor a teljes szkennelés lehet hatékonyabb:
// Egyszerű SELECT * kis sorokkal rendelkező táblán.
SELECT *
FROM small_table;
// Szűrővel ellátott lekérdezés, amely a legtöbb sort érinti
SELECT *
FROM large_table
WHERE status = 'processed'; // Ha a legtöbb sor 'processed' státuszú