Sobes.tech
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.