GoDasturchi
Indexing at Scale

Indexing at Scale

Katta hajmda indekslash

Qalin lug'atda "aeroport" so'zini qidirayotganingizni tasavvur qiling: agar lug'at TARTIBSIZ bo'lsa, siz har bir sahifani BOSHIDAN oxirigacha varaqlashga majbur bo'lardingiz. Lug'at ALIFBO tartibida joylashgani uchun, siz to'g'ridan-to'g'ri "A" harfiga o'tib, o'sha yerdan qidirasiz — bu, MING marta tezroq. Baza indeksi — aynan shu alifbo tartibi vazifasini bajaradi.

Kichik jadvalda (yuzlab yozuv) indekssiz qidirish (full table scan — jadvalning HAR bir qatorini tekshirish) sezilarli sekinlik keltirmaydi. Lekin jadval MILLIONLAB qatorga yetganda, indekssiz qidirish sekundlab, hatto DAQIQALAB vaqt olishi mumkin — shu payt indeks HAYOTIY zarurat bo'lib qoladi.

Indekssiz qidirishIndeks bilan qidirish
1,000 qatorSezilmaydi (millisekundlar)Sezilmaydi
10,000,000 qatorSekundlab davom etishi mumkinMillisekundlarda (deyarli o'zgarmaydi)

Lekin indeks BEPUL emas — bu, tizim dizaynida takrorlanadigan yana bir murosa. Har bir indeks, o'zi ham QO'SHIMCHA disk joyi egallaydi, va — muhimi — HAR safar jadvalga YANGI qator qo'shilganda yoki mavjudi O'ZGARTIRILGANDA, indeks HAM yangilanishi kerak, bu yozish operatsiyalarini SEKINLASHTIRADI. Shuning uchun "har bir ustunga indeks qo'yish" — yaxshi strategiya EMAS: faqat TEZ-TEZ qidiruv shartida ishlatiladigan ustunlarga (masalan, WHERE email = ... yoki WHERE user_id = ...) indeks qo'yiladi.

Katta miqyosda indekslash bilan sharding (oldingi dars) BOG'LIQ: har bir shard O'ZINING indeksini alohida yuritadi, shuning uchun "barcha shard'lar bo'ylab qidirish" — har bir shard ICHIDA indeks orqali TEZ qidirib, natijalarni birlashtirishni anglatadi. To'g'ri tanlangan indeks — sharding kabi katta o'zgarishga BORMASDAN, bazadan olinadigan tezlikni sezilarli oshirishning ENG ARZON yo'li.

Key Takeaway

Key Takeaway:

Indeks — tez-tez qidiriladigan ustunlar bo'yicha, jadvalning HAR bir qatorini tekshirish o'rniga to'g'ridan-to'g'ri kerakli yozuvga o'tish imkonini beradi, va ma'lumot ko'paygani sari uning foydasi EKSPONENSIAL o'sadi. Narxi — qo'shimcha disk joyi va sekinroq yozish, shuning uchun faqat HAQIQATAN qidiriladigan ustunlarga qo'yiladi.

NEXT UP

SQL vs NoSQL at Scale

Indexing at Scale

Katta hajmda indekslash

Qalin lug'atda "aeroport" so'zini qidirayotganingizni tasavvur qiling: agar lug'at TARTIBSIZ bo'lsa, siz har bir sahifani BOSHIDAN oxirigacha varaqlashga majbur bo'lardingiz. Lug'at ALIFBO tartibida joylashgani uchun, siz to'g'ridan-to'g'ri "A" harfiga o'tib, o'sha yerdan qidirasiz — bu, MING marta tezroq. Baza indeksi — aynan shu alifbo tartibi vazifasini bajaradi.

Kichik jadvalda (yuzlab yozuv) indekssiz qidirish (full table scan — jadvalning HAR bir qatorini tekshirish) sezilarli sekinlik keltirmaydi. Lekin jadval MILLIONLAB qatorga yetganda, indekssiz qidirish sekundlab, hatto DAQIQALAB vaqt olishi mumkin — shu payt indeks HAYOTIY zarurat bo'lib qoladi.

Indekssiz qidirishIndeks bilan qidirish
1,000 qatorSezilmaydi (millisekundlar)Sezilmaydi
10,000,000 qatorSekundlab davom etishi mumkinMillisekundlarda (deyarli o'zgarmaydi)

Lekin indeks BEPUL emas — bu, tizim dizaynida takrorlanadigan yana bir murosa. Har bir indeks, o'zi ham QO'SHIMCHA disk joyi egallaydi, va — muhimi — HAR safar jadvalga YANGI qator qo'shilganda yoki mavjudi O'ZGARTIRILGANDA, indeks HAM yangilanishi kerak, bu yozish operatsiyalarini SEKINLASHTIRADI. Shuning uchun "har bir ustunga indeks qo'yish" — yaxshi strategiya EMAS: faqat TEZ-TEZ qidiruv shartida ishlatiladigan ustunlarga (masalan, WHERE email = ... yoki WHERE user_id = ...) indeks qo'yiladi.

Katta miqyosda indekslash bilan sharding (oldingi dars) BOG'LIQ: har bir shard O'ZINING indeksini alohida yuritadi, shuning uchun "barcha shard'lar bo'ylab qidirish" — har bir shard ICHIDA indeks orqali TEZ qidirib, natijalarni birlashtirishni anglatadi. To'g'ri tanlangan indeks — sharding kabi katta o'zgarishga BORMASDAN, bazadan olinadigan tezlikni sezilarli oshirishning ENG ARZON yo'li.

Key Takeaway

Key Takeaway:

Indeks — tez-tez qidiriladigan ustunlar bo'yicha, jadvalning HAR bir qatorini tekshirish o'rniga to'g'ridan-to'g'ri kerakli yozuvga o'tish imkonini beradi, va ma'lumot ko'paygani sari uning foydasi EKSPONENSIAL o'sadi. Narxi — qo'shimcha disk joyi va sekinroq yozish, shuning uchun faqat HAQIQATAN qidiriladigan ustunlarga qo'yiladi.

NEXT UP

SQL vs NoSQL at Scale