Sobes.tech
Middle — Middle+

Дар кадом реплика имкон дорад, ки миқдори зиёди маълумотҳоро хондан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Дарёфти маълумоти калон дар Go одатан дар нусхаи репликашуда, ки ҳамчун read replica (реплика танҳо барои хондан) танзим шудааст, сурат мегирад. Ин имкон медиҳад, ки борро аз базаи додаҳои асосӣ (мост) кам кунад ва самаранокии иҷрои дархостҳои вазнинро дар хондани маълумот баланд бардорад.

Масалан, дар меъмории бо базаҳои додаҳои PostgreSQL ё MySQL, нусхаи асосӣ (мост) масъул барои навиштан ва хондан аст, дар ҳоле ки нусхаҳои иловагӣ танҳо барои хондан истифода мешаванд. Дар коди Go, шумо метавонед дархостҳои хонданро махсусан ба read replica равона кунед, то ки ба таври самаранок маълумоти калонро коркард кунед.

Масалан, истифодаи read replica дар Go бо китобхонаи database/sql ва routing-и махсуси дархостҳо:

// dbMaster - пайвастшавӣ ба мастер
// dbReplica - пайвастшавӣ ба реплика

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
}

Бо ин роҳ, маълумоти калон аз реплика хонда мешавад, ки борро аз базаи додаҳои асосӣ кам мекунад.