Sobes.tech
Middle — Middle+

Hansı replika böyük məlumat həcmlərinin oxunmasını mümkün edir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da böyük məlumat həcmlərinin oxunması adətən read replica kimi konfiqurasiya olunmuş replikada həyata keçirilir. Bu, əsas verilənlər bazasını (master) yükləmək və ağır oxu sorğularını yerinə yetirərkən performansı artırmağa imkan verir.

Məsələn, PostgreSQL və ya MySQL verilənlər bazası arxitekturasında, əsas replik (master) yazma və oxuma üçün cavabdehdir, əlavə replikalar isə yalnız oxuma üçün istifadə olunur. Go kodunda, oxu sorğularını xüsusi olaraq read replica-ya yönləndirmək və böyük məlumat həcmlərini səmərəli işləmək mümkündür.

Go-da database/sql kitabxanası və xüsusi sorğu yönləndirmə ilə read replica nümunəsi:

// dbMaster - master-ə qoşulma
// dbReplica - replikaya qoşulma

func queryLargeData(readOnly bool) ([]Data, error) {
    var db *sql.DB
    if readOnly {
        db = dbReplica
    } else {
        db = dbMaster
    }
    rows, err := db.Query("SELECT * FROM large_table")
    if err != nil {
        return nil, err
    }
    defer rows.Close()

    var results []Data
    for rows.Next() {
        var d Data
        if err := rows.Scan(&d.Field1, &d.Field2); err != nil {
            return nil, err
        }
        results = append(results, d)
    }
    return results, nil
}

Beləliklə, böyük məlumat həcmləri replika vasitəsilə oxunur və əsas verilənlər bazasının yükü azaldılır.