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.
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 yangilanadiSetMaxOpenConns — 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