Connection Pool กับร้านกาแฟ

·

วันนี้เรามาดูกันว่า Connection Pool คืออะไร ทำงานอย่างไร และเราจะนำไปใช้ในโปรเจกต์ได้ยังไง


Connection Pool คืออะไร?

Connection Pool คือกลไกที่ช่วยจัดการ connections ระหว่างแอปกับฐานข้อมูล หรือบริการอื่นๆ โดยสร้าง connection ล่วงหน้าไว้จำนวนหนึ่ง และนำกลับมาใช้ซ้ำเมื่อจำเป็น แทนที่จะสร้าง connection ใหม่ทุกครั้ง ช่วยลดเวลาและทรัพยากรที่ใช้ในการเชื่อมต่อ

ลองนึกภาพว่า Connection Pool เหมือน "ร้านกาแฟที่จ้างบาริสต้าจำนวนหนึ่งล่วงหน้า" เพื่อพร้อมให้บริการลูกค้าโดยไม่ต้องจ้างใหม่ทุกครั้ง (เปรียบได้กับการสร้าง connection ใหม่)


ทำไม Connection Pool สำคัญ?

  1. ลดเวลาในการเชื่อมต่อ : การสร้าง connection ใหม่ทุกครั้งใช้เวลา การใช้ Connection Pool จะช่วยลด overhead ตรงนี้
  2. เพิ่มประสิทธิภาพ : แอปสามารถรองรับคำสั่ง query พร้อมกันจำนวนมากได้ดีกว่า
  3. ลดการใช้ทรัพยากร : ช่วยประหยัด CPU และ memory บนเซิร์ฟเวอร์ฐานข้อมูล

การทำงานของ Connection Pool

  1. เมื่อแอปต้องการ query ฐานข้อมูล จะดึง connection ที่พร้อมใช้งานจาก pool
  2. หาก connection ใน pool หมด แอปจะรอจนกว่าจะมี connection ว่าง
  3. เมื่อใช้งานเสร็จ connection จะถูกคืนกลับไปยัง pool

ตัวอย่างการใช้ Connection Pool (Node.js + MySQL)

const mysql = require('mysql2');

// สร้าง Connection Pool
const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'my_database',
  waitForConnections: true, // รอ connection หากไม่มีว่าง
  connectionLimit: 10, // จำนวน connections สูงสุดใน pool
  queueLimit: 0, // ไม่จำกัดคำสั่งที่รอคิว
});

// ใช้ Connection Pool ในการ Query
pool.query('SELECT * FROM users', (err, results) => {
  if (err) {
    console.error('Error executing query:', err);
    return;
  }
  console.log('User data:', results);
});

// ปิด Pool เมื่อไม่ใช้งาน
pool.end((err) => {
  if (err) console.error('Error closing pool:', err);
  else console.log('Pool closed successfully.');
});

สรุป

Connection Pool คือหัวใจสำคัญที่ช่วยให้แอปสามารถจัดการ connection ได้อย่างมีประสิทธิภาพ โดยลดเวลาในการเชื่อมต่อและเพิ่มความสามารถในการรองรับการใช้งานพร้อมกัน

🚀 เรารับทำเว็บไซต์คุณภาพสูง

พร้อมบริการหลังการขายและรับประกันผลงาน

จ้างเราผ่าน Fastwork