nodejs เชื่อมต่อกับ MySQL แบบ connection pool

มาดูตัวอย่าง nodejs เชื่อมต่อกับ MySQL แบบ connection pool กัน

connection pool คือกลุ่มของ database connect เพื่อใช้ซ้ำในการดำเนินการต่าง ๆ แทนที่จะเปิด ๆ ปิด ๆ connection ตลอดเวลา

การใช้ connection pool สามารถทำให้ nodejs application มีประสิทธิภาพดีขึ้น

จากตัวอย่างเราจะใช้ mysql2 ในการสร้าง connection pool โดยเรียกใช้ method createPool() ตามตัวอย่างโค้ด

const mysql = require('mysql2');

const pool = mysql.createPool({
  host: 'localhost',
  user: 'your_username',
  password: 'your_password',
  database: 'your_database',
  connectionLimit: 10
});

pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

จากตัวอย่างเราใช้ createPool() เพื่อสร้าง pool โดยมีขนาด 10 connection

connectionLimit เป็นการตั้งค่าว่า มีจำนวน connection ได้สูงสุด 10 connection ใน pool

เมื่อเราใช้ pool.query() ในการ execute SQL query, pool จะทำการเชื่อมต่ออัตโนมัติและนำกลับมาใช้ใหม่เมื่อมีการดำเนินการหลายอย่าง

สังเกตว่า mysql2 ยังมีฟังก์ชัน promise ให้เราได้ใช้ด้วย

ตัวอย่างการใช้งาน

const pool = mysql.createPool(config).promise();
const [rows, fields] = await pool.query("SELECT * FROM users");

ทางเลือกอื่น เราสามารถใช้ lib sequelize ได้ด้วย



Copyright © 2023 Devcode Code Example - Powered by www.doesystem.com