Sobes.tech
Junior — Middle

Verilənlər bazası sorğularının performansını artırmaq təcrübənizi paylaşa bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Go layihələrində verilənlər bazasına sorğuların performansını artırmaq üçün bir neçə yanaşmadan istifadə etdim:

  • Təkrar olunan sorğular üçün hazırlanmış ifadələr (prepared statements) istifadə etmək, SQL-in analiz xərclərini azaltmaq üçün.

  • SQL sorğularını optimallaşdırmaq: indekslər əlavə etmək, JOIN-lərin sayını azaltmaq, yalnız lazım olan sahələri seçmək.

  • Tez-tez soruşulan məlumatların yaddaşda önbelleklənməsi (məsələn, Redis və ya daxili strukturlarla).

  • Səhifələmə və seçimi məhdudlaşdırmaq: bir sorğuda çox məlumat yükləməmək üçün.

  • Sorğuların profilini çıxarmaq: loglama və monitorinq alətləri ilə, yavaş yerləri tapmaq üçün.

Go-da database/sql paketi ilə hazırlanmış sorğu nümunəsi:

stmt, err := db.Prepare("SELECT name FROM users WHERE id = ?")
if err != nil {
    log.Fatal(err)
}
var name string
err = stmt.QueryRow(userID).Scan(&name)
if err != nil {
    log.Fatal(err)
}
fmt.Println(name)

Bu yanaşma cavab vaxtını azaltmağa və verilənlər bazasına yükü azaltmağa kömək edir.