În care replică este posibilă citirea unor volume mari de date?
sobes.tech AI
Răspuns de la AI
Citirea volumelor mari de date în Go are loc de obicei pe o replică configurată ca read replica (relică doar pentru citire). Acest lucru permite descărcarea bazei de date principale (master) și creșterea performanței în timpul executării interogărilor de citire intensive.
De exemplu, într-o arhitectură cu baze de date PostgreSQL sau MySQL, replica principală (master) se ocupă de scriere și citire, în timp ce replicile suplimentare sunt doar pentru citire. În codul Go, puteți direcționa interogările de citire în mod specific către read replica pentru a procesa eficient volume mari de date.
Exemplu de utilizare a read replica în Go cu biblioteca database/sql și rutare personalizată a interogărilor:
// dbMaster - conexiune la master
// dbReplica - conexiune la replica
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
}
Astfel, volume mari de date sunt citite din replica, ceea ce reduce sarcina asupra bazei principale.