Өгөгдлийн сангийн индекслэлт гэдэг нь өгөгдлийн хурдан буюу зардал багатай олоход туслах зорилготой өгөгдлийн бүтэц юм . Индекслэлтийн тусламжтайгаар хүснэгтийн бүтэн уншихгүйгээр өгөгдлөө олох боломжтой .Ингэснээр Disk Access багасах ба үүний үр дүнд зардал багасах билээ .
Жишээлвэл :
Хэрэв та users
хүснэгтээс WHERE email = 'user@example.com'
гэж хайвал индекс байхгүй үед бүх мөрийг шалгана. Индекс байгаа тохиолдолд шууд тухайн имэйлтэй мөрийг олно.
Индекслэлт яаж ажилдаг вэ ?
Өгөгдлийн сан удирдах систем нь автоматаар өгөгдлийн бүтцийг сонгоно . Ихэнх DBMS (MySQL, Postgres, MongoDB) нь B-tree өгөгдлийн бүтцийг ашигладаг .
B-tree нь өөр өөрийнхөө тэнцвэрийг олдог олон замаар шалгах боломжтой байснаар үр дүнтэй гогцоо буюу (node) нэмэх , устгах , хайх үйлдлийг хийх боломжийг олгодог өгөгдлийн бүтэц юм . Энэ нь ихэвчлэн өгөгдлийн сан ба File System-д ашиглагддаг ба үүний шалтгаан нь их хэмжээний өгөгдлийг бага disk хандалтаар удирдаж чаддагт оршино .
Индекслэлтийг хэрэгжүүлэх шаардлага ?
Индекслэлт ашигласнаар маш ашигтай бөгөөд үүний нэгэн жишээ нь 1’000’000 мөртэй хүснэгт байхад үүнийг уншихад 1’000’000 . Энэ нь тийм их зардал биш мэт санагдаж байгаа мэт санагдаж байвал үүнийг дахин 1’000’000 мөртэй хүснэгттэй JOIN хийж байна хэмээн бодоод үзээрэй . Үүнээс та индекслэлтийн зайлшгүй шаардлагийг олж харж болно .
Индекслэлтийн сул тал ?
1.Update / Insert / Delete удааширна
- Өгөгдөл өөрчлөгдөх бүрт индексүүд шинэчлэгдэх шаардлагатай.
- Том хүснэгт дээр олон индекс байвал — зардал нэмэгддэг.
2. Дискний нэмэлт хэрэглээ
- Индексүүд нь тусдаа өгөгдлийн бүтэц учраас хэмжээ нэмэгдэнэ.
- Ялангуяа олон баганад индекс үүсгэвэл — газар их эзэлнэ.
3. Буруу индекс → буруу гүйцэтгэл
- Буруу баганад индекс үүсгэвэл эсрэгээрээ удаашруулна.
- Зарим тохиолдолд DBMS индексийг ашиглахгүй орхидог.
4. Засвар үйлчилгээ
- Индексүүдийг анализ хийх, шинэчлэх, зарим үед устгах хэрэгтэй.
- Том өгөгдлийн сантай бол эдгээр нь цаг хугацаа ба нөөц шаарддаг.