Middle
Indeks so'rovni bajarishni qanday optimallashtiradi?
sobes.tech AI
AIdan javob
Indeks — bu ma'lumotlar tuzilmasi (odatda B daraxti), u jadvalning kichik bir qismi va asosiy jadvaldagi mos satrlarga havolalarni saqlaydi.
Optimizatsiya jarayoni:
- Tez qidiruv: To'liq jadvalni skan qilish (full table scan) o'rniga, ma'lumotlar bazasi boshqaruv tizimi (DBMS) indeksni ko'rib chiqadi. Indeks tartiblangan va ma'lum ustunlar bo'yicha tez qidiruv uchun optimallashtirilgan.
- O'qiladigan ma'lumot hajmini kamaytirish: Indeks faqat indekslangan ustunlar va ko'rsatkichlarni o'z ichiga oladi, bu diskdan o'qilishi kerak bo'lgan ma'lumotlar hajmini sezilarli darajada kamaytiradi, to'liq satr yoki to'liq ma'lumot sahifasini o'qish bilan solishtirganda.
- Tartiblash yo'q: Indeks allaqachon indekslangan ustunlar bo'yicha tartiblangan. Bu, so'rov tartiblangan natijalarni talab qilsa, qimmatbaho tartiblash operatsiyasini amalga oshirishni oldini oladi.
- JOIN operatsiyalarini optimallashtirish: Jadvalni (JOIN) indekslangan ustunlar bo'yicha birlashtirishda, DBMS indeksdan foydalanib, boshqa jadvaldagi mos satrlarni tezda topishi mumkin, butun jadval bo'ylab ichma-ich sikllar qilish o'rniga.
Misol:
LastName ustunida indeks bo'lmagan SELECT * FROM Users WHERE LastName = 'Ivanov' so'rovi, DBMS Users jadvidagi har bir satrni o'qib, LastName qiymatini tekshirishi kerak bo'ladi.
LastName bo'yicha indeks bilan, DBMS LastName 'Ivanov' ga teng bo'lgan yozuvlarni tezda topadi, tartiblangan indeksni ko'rib chiqib, so'ng indeksdan ko'rsatkichlarni ishlatib, asosiy jadvardagi to'liq satr ma'lumotlarini oladi.
-- LastName indeksidan foydalanadigan so'rov misoli
SELECT UserId, FirstName
FROM Users
WHERE LastName = 'Ivanov';
-- Yuqoridagi so'rovni optimallashtirish uchun indeks yaratish misoli
CREATE INDEX IX_Users_LastName ON Users (LastName);