Junior — Middle
86
Толық индекс сканерлеу арқылы сұрауды орындау мен деректерді тек индекс арқылы оқып, кестеге жүгінбеген кезде айырмашылығы қандай?
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
Деректер қорлары мен индекстермен жұмыс істеу контекстінде, индекстерді пайдалану арқылы деректерді оқудың екі негізгі әдісі бөлінеді:
-
Индексті толық сканерлеу (Index Scan):
- Бұл әдісте дерекқор барлық индекстер жазбаларын біртіндеп оқиды.
- Егер сұрау деректердің көп бөлігін қамтыса немесе индекс тиімді түрде сұрыптауға мүмкіндік бермесе, пайдаланылады.
- Индексті оқығаннан кейін, қалған бағандарды алу үшін негізгі кестеге жүгіну қажет болуы мүмкін (егер қамтитын индекс толық болмаса).
-
Тек индекс арқылы деректерді оқу (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-ны алуы керек.
Осылайша, қамтитын индекстерді пайдалану қосымша кестеге жүгінуді болдырмайды және сұрауларды жылдамдатады.