GoDasturchi
Connection Pool Configuration

Connection Pool Configuration

Ulanishlar to'plamini sozlash

"What is database/sql?" darsida *sql.DBning bitta ulanish emas, ulanishlar to'plami ekanini ko'rgan edik. Bu to'plamning hajmi va xatti-harakatini sozlash mumkin — bu production loyihalarda ishlash tezligiga sezilarli ta'sir qiladi.

example.go
db, _ := sql.Open("postgres", dsn)

db.SetMaxOpenConns(25)     // baza bilan bir vaqtda ochiq bo'lishi mumkin bo'lgan MAKSIMAL ulanishlar
db.SetMaxIdleConns(5)      // band bo'lmagan holda "isitib" saqlanadigan ulanishlar
db.SetConnMaxLifetime(30 * time.Minute) // har bir ulanish shuncha vaqtdan keyin yangilanadi

SetMaxOpenConns — nazoratsiz holda minglab ulanish ochilib, bazani "bosib" qo'yishining oldini oladi. SetMaxIdleConns — har safar yangi ulanish ochish sekin bo'lgani uchun, ba'zi ulanishlarni "tayyor holatda" saqlab, keyingi so'rovlarni tezlashtiradi. SetConnMaxLifetime esa juda uzoq vaqt ochiq turgan ulanishlarni (masalan tarmoq muammolari yig'ilishi mumkin bo'lgan) davriy yangilab turadi.

Bu sozlamalar uchun "universal to'g'ri qiymat" yo'q — ular server resurslariga, kutilayotgan yukka va bazangizning o'ziga bog'liq. Lekin standart (cheksiz) qiymatlar bilan qolib ketish — production'da kutilmagan muammolarga olib kelishi mumkin, shuning uchun ularni ataylab sozlash yaxshi amaliyot hisoblanadi.

Key Takeaway

Key Takeaway:

SetMaxOpenConns/SetMaxIdleConns/SetConnMaxLifetime — ulanishlar to'plamining hajmi va yangilanishini nazorat qilib, production'da barqarorlik va tezlikni ta'minlaydi.

NEXT UP

Putting It All Together

Connection Pool Configuration

Ulanishlar to'plamini sozlash

"What is database/sql?" darsida *sql.DBning bitta ulanish emas, ulanishlar to'plami ekanini ko'rgan edik. Bu to'plamning hajmi va xatti-harakatini sozlash mumkin — bu production loyihalarda ishlash tezligiga sezilarli ta'sir qiladi.

example.go
db, _ := sql.Open("postgres", dsn)

db.SetMaxOpenConns(25)     // baza bilan bir vaqtda ochiq bo'lishi mumkin bo'lgan MAKSIMAL ulanishlar
db.SetMaxIdleConns(5)      // band bo'lmagan holda "isitib" saqlanadigan ulanishlar
db.SetConnMaxLifetime(30 * time.Minute) // har bir ulanish shuncha vaqtdan keyin yangilanadi

SetMaxOpenConns — nazoratsiz holda minglab ulanish ochilib, bazani "bosib" qo'yishining oldini oladi. SetMaxIdleConns — har safar yangi ulanish ochish sekin bo'lgani uchun, ba'zi ulanishlarni "tayyor holatda" saqlab, keyingi so'rovlarni tezlashtiradi. SetConnMaxLifetime esa juda uzoq vaqt ochiq turgan ulanishlarni (masalan tarmoq muammolari yig'ilishi mumkin bo'lgan) davriy yangilab turadi.

Bu sozlamalar uchun "universal to'g'ri qiymat" yo'q — ular server resurslariga, kutilayotgan yukka va bazangizning o'ziga bog'liq. Lekin standart (cheksiz) qiymatlar bilan qolib ketish — production'da kutilmagan muammolarga olib kelishi mumkin, shuning uchun ularni ataylab sozlash yaxshi amaliyot hisoblanadi.

Key Takeaway

Key Takeaway:

SetMaxOpenConns/SetMaxIdleConns/SetConnMaxLifetime — ulanishlar to'plamining hajmi va yangilanishini nazorat qilib, production'da barqarorlik va tezlikni ta'minlaydi.

NEXT UP

Putting It All Together