PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मैं गो ऐप में डीबी कनेक्शन खोलने/बंद करने का प्रबंधन कैसे करूं?

हर बार जरूरत पड़ने पर डीबी कनेक्शन खोलना संसाधनों की बर्बादी है और यह धीमा है।

इसके बजाय, आपको एक sql.DB बनाना चाहिए एक बार, जब आपका आवेदन शुरू होता है (या पहली मांग पर), और या तो इसे पास करें जहां इसकी आवश्यकता है (उदाहरण के लिए फ़ंक्शन पैरामीटर के रूप में या किसी संदर्भ के माध्यम से), या बस इसे एक वैश्विक चर बनाएं और इसलिए हर कोई इसे एक्सेस कर सकता है। एकाधिक गोरोइन से कॉल करना सुरक्षित है।

sql.Open() . के दस्तावेज़ से उद्धरण :

<ब्लॉकक्वॉट>

लौटाया गया डीबी एकाधिक गोरोइन द्वारा समवर्ती उपयोग के लिए सुरक्षित है और निष्क्रिय कनेक्शन के अपने पूल को बनाए रखता है। इस प्रकार, ओपन फ़ंक्शन को केवल एक बार बुलाया जाना चाहिए। डीबी को बंद करना शायद ही कभी आवश्यक होता है।

आप एक पैकेज का उपयोग कर सकते हैं init() इसे इनिशियलाइज़ करने के लिए फंक्शन:

var db *sql.DB

func init() {
    var err error
    db, err = sql.Open("yourdriver", "yourDs")
    if err != nil {
        log.Fatal("Invalid DB config:", err)
    }
}

यहां एक बात ध्यान देने योग्य है कि sql.Open() हो सकता है कि आपके डीबी से वास्तविक कनेक्शन न बने, यह केवल इसके तर्कों को मान्य कर सकता है। यह जांचने के लिए कि क्या आप वास्तव में डीबी से जुड़ सकते हैं, DB.Ping() . का उपयोग करें , उदा.:

func init() {
    var err error
    db, err = sql.Open("yourdriver", "yourDs")
    if err != nil {
        log.Fatal("Invalid DB config:", err)
    }
    if err = db.Ping(); err != nil {
        log.Fatal("DB unreachable:", err)
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरा पसंदीदा पोस्टग्रेएसक्यूएल एक्सटेंशन - भाग दो

  2. बल्क अपडेट और डिलीट ऑपरेशन करते समय PostgreSQL गतिरोध से बचना

  3. पोस्टग्रेस्क्ल में महीने और साल के अनुसार समूह क्वेरी परिणाम

  4. कैसे pg_sleep_until() PostgreSQL में काम करता है

  5. बोली को स्पष्ट रूप से v4.0.0 . के रूप में आपूर्ति की जानी चाहिए