Sobes.tech
Junior — Middle

MongoDB-də sorğuları optimallaşdırmaq üçün indeksləşdirmə istifadə təcrübəniz varmı?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, Go layihələrində tez-tez MongoDB indeksləri istifadə olunur və sorğuların optimallaşdırılması üçün indekslərdən istifadə edilir. MongoDB-də indekslər, xüsusən böyük kolleksiyalarda məlumatların axtarışını və filtrlənməsini əhəmiyyətli dərəcədə sürətləndirir.

Go-da adətən rəsmi mongo-go-driver sürücüsü istifadə olunur. İndeks istifadə etmək üçün əvvəlcə lazım olan sahədə indeks yaradılır və sonra bu indeksdən istifadə edən sorğular həyata keçirilir.

Go-da indeks yaratma nümunəsi:

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 artan sıralama üçün
        Options: options.Index().SetUnique(false),
    }
    indexName, err := collection.Indexes().CreateOne(context.Background(), indexModel)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("İndeks yaradıldı:", indexName)
}

İndeks yaradıldıqdan sonra, fieldName ilə filtrləyən sorğular daha sürətli işləyəcək.

İndeks istifadə təcrübəsi, hansı sahələrin indekslənməsi lazım olduğunu anlamağı və MongoDB profil cihazı vasitəsilə indekslərin istifadəsini izləməyi əhatə edir.