Sobes.tech
Junior — Middle
86

Толық индекс сканерлеу арқылы сұрауды орындау мен деректерді тек индекс арқылы оқып, кестеге жүгінбеген кезде айырмашылығы қандай?

Сұралған компаниялар
AstonAston

AI-дан жауап

sobes.tech AI

Деректер қорлары мен индекстермен жұмыс істеу контекстінде, индекстерді пайдалану арқылы деректерді оқудың екі негізгі әдісі бөлінеді:

  1. Индексті толық сканерлеу (Index Scan):

    • Бұл әдісте дерекқор барлық индекстер жазбаларын біртіндеп оқиды.
    • Егер сұрау деректердің көп бөлігін қамтыса немесе индекс тиімді түрде сұрыптауға мүмкіндік бермесе, пайдаланылады.
    • Индексті оқығаннан кейін, қалған бағандарды алу үшін негізгі кестеге жүгіну қажет болуы мүмкін (егер қамтитын индекс толық болмаса).
  2. Тек индекс арқылы деректерді оқу (Index-Only Scan немесе Covering Index):

    • Егер индекс сұрау үшін қажетті барлық бағандарды қамтыса, деректерді тікелей индекстен алуға болады, негізгі кестеге жүгінбестен.
    • Бұл әлдеқайда жылдамырақ, себебі енгізу-шығару операциялары азаяды.

Айырмашылықтар:

  • Толық индекс сканерлеу кезінде барлық жазбалар оқылады, бұл үлкен деректер көлемінде қымбатқа түседі.
  • Тек индекс арқылы оқығанда сұрау жылдамырақ орындалады, себебі негізгі кестеден деректерді оқудың қажеті жоқ.

Мысал:

Егер сізде (id, name, age) бағандары бар кесте және name бойынша индекс болса, сұрау:

SELECT name FROM table WHERE name LIKE 'A%';

тек name бағанын қамтитын индекс арқылы орындалуы мүмкін.

Ал егер сұрау:

SELECT id, name FROM table WHERE name LIKE 'A%';

және индекс id бағанын қамтымайтын болса, онда индекс оқылғаннан кейін дерекқор кестеге жүгініп, id-ны алуы керек.

Осылайша, қамтитын индекстерді пайдалану қосымша кестеге жүгінуді болдырмайды және сұрауларды жылдамдатады.