Sobes.tech
Junior — Middle

MongoDB'de sorguları optimize etmek için indeksleme kullanımı konusunda deneyiminiz var mı?

sobes.tech yapay zeka

AI'dan gelen yanıt

Evet, Go projelerinde sık sık MongoDB indeksleri kullanılır ve sorguları optimize etmek için indeksler kullanılır. MongoDB'deki indeksler, özellikle büyük koleksiyonlarda veri arama ve filtreleme işlemlerini önemli ölçüde hızlandırır.

Go'da genellikle resmi mongo-go-driver sürücüsü kullanılır. İndeksleme yapmak için önce gerekli alanda bir indeks oluşturulur ve ardından bu indeksi kullanan sorgular gerçekleştirilir.

Go'da indeks oluşturma örneği:

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 için
        Options: options.Index().SetUnique(false),
    }
    indexName, err := collection.Indexes().CreateOne(context.Background(), indexModel)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("İndeks oluşturuldu:", indexName)
}

İndeks oluşturulduktan sonra, fieldName ile filtreleyen sorgular daha hızlı çalışacaktır.

İndeks kullanımıyla ilgili deneyim, hangi alanların indekslenmesi gerektiğini anlamayı ve MongoDB profil cihazı kullanılarak indeks kullanımını izlemeyi içerir.