Sobes.tech
Middle — Middle+

У којој реплици је могуће читати велике количине података?

sobes.tech АИ

Одговор од АИ

Čitanje velikih količina podataka u Go-u obično se vrši na repliki koja je konfigurirana kao read replica (replika samo za čitanje). To omogućava rasterećenje glavne baze podataka (master) i povećanje performansi pri izvršavanju teških upita za čitanje.

Na primjer, u arhitekturi sa bazama podataka PostgreSQL ili MySQL, glavna replika (master) je odgovorna za zapis i čitanje, dok dodatne replike služe samo za čitanje. U Go kodu, možete usmjeriti upite za čitanje posebno na read replica kako biste efikasno obrađivali velike količine podataka.

Primjer korištenja read replica u Go-u sa bibliotekom database/sql i prilagođenim rutiranjem upita:

// dbMaster - veza sa master-om
// dbReplica - veza sa replikom

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
}

Na ovaj način, veliki obimi podataka se čitaju sa replikacije, čime se smanjuje opterećenje na glavnu bazu podataka.