fbpx

Өгөгдлийн сангийн индекслэлт гэдэг нь өгөгдлийн хурдан буюу зардал багатай олоход туслах зорилготой өгөгдлийн бүтэц юм . Индекслэлтийн тусламжтайгаар хүснэгтийн бүтэн уншихгүйгээр өгөгдлөө олох боломжтой .Ингэснээр Disk Access багасах ба үүний үр дүнд зардал багасах билээ .

Жишээлвэл :

Хэрэв та users хүснэгтээс WHERE email = 'user@example.com' гэж хайвал индекс байхгүй үед бүх мөрийг шалгана. Индекс байгаа тохиолдолд шууд тухайн имэйлтэй мөрийг олно.

Индекслэлт яаж ажилдаг вэ ?

Өгөгдлийн сан удирдах систем нь автоматаар өгөгдлийн бүтцийг сонгоно . Ихэнх DBMS (MySQL, Postgres, MongoDB) нь B-tree өгөгдлийн бүтцийг ашигладаг .

B-tree image.png

B-tree нь өөр өөрийнхөө тэнцвэрийг олдог олон замаар шалгах боломжтой байснаар үр дүнтэй гогцоо буюу (node) нэмэх , устгах , хайх үйлдлийг хийх боломжийг олгодог өгөгдлийн бүтэц юм . Энэ нь ихэвчлэн өгөгдлийн сан ба File System-д ашиглагддаг ба үүний шалтгаан нь их хэмжээний өгөгдлийг бага disk хандалтаар удирдаж чаддагт оршино .

Индекслэлтийг хэрэгжүүлэх шаардлага ?

Индекслэлт ашигласнаар маш ашигтай бөгөөд үүний нэгэн жишээ нь 1’000’000 мөртэй хүснэгт байхад үүнийг уншихад 1’000’000 . Энэ нь тийм их зардал биш мэт санагдаж байгаа мэт санагдаж байвал үүнийг дахин 1’000’000 мөртэй хүснэгттэй JOIN хийж байна хэмээн бодоод үзээрэй . Үүнээс та индекслэлтийн зайлшгүй шаардлагийг олж харж болно .

Индекслэлтийн сул тал ?

1.Update / Insert / Delete удааширна

  • Өгөгдөл өөрчлөгдөх бүрт индексүүд шинэчлэгдэх шаардлагатай.
  • Том хүснэгт дээр олон индекс байвал — зардал нэмэгддэг.

2. Дискний нэмэлт хэрэглээ

  • Индексүүд нь тусдаа өгөгдлийн бүтэц учраас хэмжээ нэмэгдэнэ.
  • Ялангуяа олон баганад индекс үүсгэвэл — газар их эзэлнэ.

3. Буруу индекс → буруу гүйцэтгэл

  • Буруу баганад индекс үүсгэвэл эсрэгээрээ удаашруулна.
  • Зарим тохиолдолд DBMS индексийг ашиглахгүй орхидог.

4. Засвар үйлчилгээ

  • Индексүүдийг анализ хийх, шинэчлэх, зарим үед устгах хэрэгтэй.
  • Том өгөгдлийн сантай бол эдгээр нь цаг хугацаа ба нөөц шаарддаг.

Leave a Reply