Back to questions
Intern
13
Что такое connection pool в пакете database/sql? Как он работает?
Companies where asked
Adapty
Answer from AI
sobes.tech AI
Connection pool в пакете database/sql — это механизм управления набором открытых соединений с базой данных, которые переиспользуются для выполнения запросов. Вместо открытия и закрытия соединения при каждом запросе, пул поддерживает несколько активных соединений, что значительно повышает производительность и снижает нагрузку на базу.
Как это работает:
- При первом запросе создаётся новое соединение и помещается в пул.
- Следующие запросы берут свободное соединение из пула.
- Если все соединения заняты, запрос ждёт освобождения или создаётся новое соединение, если не достигнут лимит.
- После использования соединение возвращается в пул для повторного использования.
Пример настройки пула в Go:
import "database/sql"
// db — *sql.DB
// Устанавливаем максимальное количество открытых соединений
db.SetMaxOpenConns(10)
// Устанавливаем максимальное количество свободных соединений
db.SetMaxIdleConns(5)