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 ได้ด้วย