Sobes.tech
Junior — Middle

MongoDB'da so'rovlarni optimallashtirish uchun indekslashdan foydalanish bo'yicha tajribangiz bormi?

sobes.tech AI

AIdan javob

Ha, Go loyihalarida MongoDB indekslari ko‘pincha so‘rovlarni optimallashtirish uchun ishlatiladi. MongoDB indekslari katta kolleksiyalarda ma'lumotlarni qidirish va filtrlashni sezilarli darajada tezlashtiradi.

Go'da odatda rasmiy mongo-go-driver drayveri ishlatiladi. Indeks yaratish uchun avvalo kerakli maydon bo‘yicha indeks hosil qilinadi va keyin bu indeksdan foydalanadigan so‘rovlar bajariladi.

Go'da indeks yaratish misoli:

import (
    "context"
    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    "log"
)

func createIndex(collection *mongo.Collection) {
    indexModel := mongo.IndexModel{
        Keys: bson.D{{Key: "fieldName", Value: 1}}, // 1 o‘sish tartibi uchun
        Options: options.Index().SetUnique(false),
    }
    indexName, err := collection.Indexes().CreateOne(context.Background(), indexModel)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("Indeks yaratildi:", indexName)
}

Indeks yaratgandan so‘ng, fieldName bo‘yicha filtrlash so‘rovlar tezroq bajariladi.

Indekslar bilan ishlash tajribasi qaysi maydonlarni indekslashni tushunishni va MongoDB profiling yordamida indekslardan foydalanishni nazorat qilishni o‘z ichiga oladi.