Sobes.tech

Аз нигоҳи иҷроиш, кадом қоидаҳои умумӣ бояд ба чунин схемаи базаи додаҳо татбиқ карда шаванд?

141

Чаро таҳиягарони Go намегуранд тартиби гузаронидани харита дар вақти диапазон?

130

Чӣ кор бояд кард, агар мо ҳама индексҳои заруриро илова карда бошем, аммо базаи додаҳо ҳанӯз ҳам бо бор наметавонад ва суст мешавад?

128

// GetUsersList қайтару тізімін пайдалану. (мәліметтер базасында шамамен 1 миллион пайдаланушы сақталады) // Әкімшілік панельде пайдаланушылар тізімін көрсету үшін пайдаланылады. Егер isActive = true болса, тек белсенді пайдаланушылар қайтарылады. func (u *UsersRepo) GetUsersList(ctx context.Context, isActive bool) ([]User, error) { rows, err := u.DB.Query("SELECT id, name, phone FROM users WHERE is_active = ?", isActive) if err != nil { return nil, errors.New("қате пайдаланушылар тізімін алу кезінде") } var users []User // Пайдаланушылар туралы ақпаратты толтырыңыз. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Пайдаланушының электронды пошта тізімін алыңыз err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("қате пайдаланушылар тізімін алу кезінде") } var emails []string for er.Next() { var email string err := rows.Scan(&email) if err != nil { return nil, err } emails = append(emails, email) } if len(emails) != 0 { for i, e := range emails { e = strings.ToLower(e) emails[i] = e } } user.Emails = emails // VK API-дан профиль ақпаратын алыңыз profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("қате пайдаланушылар тізімін алу кезінде") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("қате пайдаланушылар тізімін алу кезінде") } }

115

-- рӯйхати китобҳоро ба тартиб дароред, ки мувофиқи id, -- аммо дар баромад ҷойҳои 2 ва 3-ро иваз кунед: -- 1 Устод ва Маргарита 100 -- 3 Теленоқ тиллоӣ 50 -- 2 Дувоздаҳ тахтаҳо 200 -- 4 Евгений Онегин 250 -- 5 Ҳикояҳои Белкин 90 -- 6 Три мушкетерҳо 60

105
/2