Sobes.tech
Middle

Индекс суроо-талаптын аткарылышын кантип оптималдаштырат?

sobes.tech AI

AIден жооп

Индекси — бул маалымат структурасы (көпчүлүк учурда B- дарак), ал таблицанын кичинекей бөлүгүн жана негизги таблицадагы тиешелүү саптарга шилтемелерди сактайт.

Оптимизация процесси:

  1. Тез издөө: Толук таблицаны сканерлөө (full table scan) ордуна, маалымат базасын башкаруу системасы (DBMS) индексин карайт. Индекс сорттолгон жана белгилүү колонкалар боюнча тез издөөгө ылайыкталган.
  2. Окуган маалыматтын көлөмүн кыскартуу: Индекс гана индекстелген колонкаларды жана көрсөткүчтөрдү камтыйт, бул дискден окулуучу маалыматтын көлөмүн маанилүү түрдө азайтат, бүт сапты же бүт баракчаны окууга караганда.
  3. Сорттоо жок: Индекс алдын ала сорттолгон, ошондуктан татаал сорттоо операциясын жүргүзүүнүн кажети жок, эгер суроо сорттолгон натыйжаларды талап кылса.
  4. JOIN операцияларын оптималдаштыруу: Таблицаларды (JOIN) индекстелген колонкалар боюнча бириктирүүдө, DBMS тез арада башка таблицада тиешелүү саптарды табуу үчүн индекс колдонуп, бүт таблица боюнча ички циклдерди аткаруудан алыс болот.

Мисал:

LastName колонкасына индекс жок болсо, SELECT * FROM Users WHERE LastName = 'Ivanov' суроосунда, DBMS Users таблицасынан ар бир сапты окуп, LastName маанисин текшерет.

LastName боюнча индекс менен, DBMS тез арада LastName 'Ivanov' болгон жазууларды табат, сортталган индексти карап, андан соң индекс аркылуу көрсөткүчтөрдү колдонуп, негизги таблицадан толук саптарды алат.

-- `LastName` индексин колдонгон суроо мисалы
SELECT UserId, FirstName
FROM Users
WHERE LastName = 'Ivanov';
-- Жогорудагы суроону оптималдаштыруу үчүн индекс түзүү мисалы
CREATE INDEX IX_Users_LastName ON Users (LastName);