Middle — Middle+
V které replika je možné číst velké objemy dat?
sobes.tech AI
Odpověď od AI
Čtení velkých objemů dat v Go se obvykle provádí na replikě nakonfigurované jako read replica (replika pouze pro čtení). To umožňuje odlehčit hlavní databázi (master) a zvýšit výkon při provádění náročných čtecích dotazů.
Například v architektuře s databázemi PostgreSQL nebo MySQL hlavní replika (master) zodpovídá za zápis a čtení, zatímco další repliky jsou určeny pouze pro čtení. V kódu Go lze směrovat čtecí dotazy právě na read replica, aby bylo možné efektivně zpracovat velké objemy dat.
Příklad použití read replica v Go s knihovnou database/sql a vlastním routováním dotazů:
// dbMaster - připojení k masteru
// dbReplica - připojení k replikě
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
}
Tímto způsobem jsou velké objemy dat čteny z repliky, což snižuje zátěž hlavní databáze.