Middle — Middle+
Kurā replika ir iespējams lasīt lielus datu apjomus?
sobes.tech AI
Atbilde no AI
Lielu datu apjomu lasīšana Go parasti notiek replikā, kas ir konfigurēta kā read replica (tikai lasīšanas replika). Tas ļauj atvieglot galveno datu bāzi (master) un uzlabot veiktspēju, veicot smagas lasīšanas vaicājumus.
Piemēram, ar PostgreSQL vai MySQL datu bāzēm arhitektūrā galvenā replika (master) ir atbildīga par rakstīšanu un lasīšanu, bet papildu replikas ir paredzētas tikai lasīšanai. Go kodā var virzīt lasīšanas vaicājumus tieši uz read replica, lai efektīvi apstrādātu lielus datu apjomus.
Piemērs, kā izmantot read replica Go ar database/sql bibliotēku un pielāgotu maršrutēšanu:
// dbMaster - savienojums ar galveno
// dbReplica - savienojums ar replikāciju
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
}
Šādā veidā lieli datu apjomi tiek lasīti no replikas, kas samazina slodzi uz galveno datu bāzi.