Middle — Middle+
V ktorej replike je možné vykonávať čítanie veľkých objemov dát?
sobes.tech AI
Odpoveď od AI
Čítanie veľkých objemov dát v Go sa zvyčajne vykonáva na replike, ktorá je nakonfigurovaná ako read replica (replika len na čítanie). To umožňuje odľahčiť hlavnú databázu (master) a zvýšiť výkon pri vykonávaní náročných dopytov na čítanie.
Napríklad, v architektúre s databázami PostgreSQL alebo MySQL, hlavná replika (master) je zodpovedná za zápis a čítanie, zatiaľ čo ďalšie repliky slúžia iba na čítanie. V Go kóde môžete smerovať dopyty na čítanie špecificky na read replica, aby ste efektívne spracovali veľké objemy dát.
Príklad použitia read replica v Go s knižnicou database/sql a vlastným routovaním dopytov:
// dbMaster - spojenie s masterom
// dbReplica - spojenie s replikou
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 spôsobom sa veľké objemy dát čítajú z repliky, čím sa znižuje záťaž na hlavnú databázu.