Мэдлэгийн сан мэйлийн жагсаалтын архивууд

Индексийн талаар

аар
Ариунзул Батхишиг, Ажилтан
- 2020.11.30 03:21:45

"copy"
Индекс гэдэг нь тухайн утга нь тухайн table-н аль мөр дээр (block дээр) байгааг заадаг бүтэц юм байгаан. Индекстэй байснаараа, table-ээ тэр чигээр нь самнахгүйгээр, шууд хүссэн өгөгдлөө олоод авчихна гэсэн үг.
Тэгвэл тэр нь table дээр өөрчлөлт орох бүрт шинэчлэгдэх ёстой болно. Тийм болохоор Bulk insert хийх үед index удаашруулах гээд байдаг.

Тэгвэл устгахад ямар хамааралтай вэ?
Index-с гадна foreign key гэдэг ойлголт бас байдаг шд. Тэр нь өгөгдлийн integrity-г хангаж байдаг. Тийм ч учраас, parent data устгах үед foreign key-нүүдийг нь шалгаад, child table болгонд тухайн key ашиглагдсан байна уу гэдгийг шүүдэг. Тэр шүүлтийг хийх үед child table нь маш их мөртэй мөртлөө тухайн баганад зориулсан index байхгүй үед full table scan (table-н бүх мөрүүдээр гүйх) хийх хэрэгтэй болдог тийм учраас устгах үед уддаг юм.

Тиймээс, "foreign key reference үүсгэж байгаа бол тэр багана даа зориулсан index бас давхар үүсгэ" гэсэн best-practice байдаг юм. (Мэдээж хэрэг бүх reference-д үүсгэхгүй л дээ, их өгөгдөлтэй их ашиглагдах foreign key дээрээ л үүсгэнэ.)