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