Создание пула соединений в MySQL с использованием mysql2

Пул соединений — это метод, используемый для оптимизации производительности и эффективности подключений к базе данных в приложениях. В этой статье блога мы рассмотрим, как создать пул соединений с помощью библиотеки mysql2 в Node.js. Мы рассмотрим несколько методов с примерами кода, которые помогут вам реализовать надежный пул соединений для вашей базы данных MySQL.

Метод 1: использование функции mysql2.createPool()

const mysql = require('mysql2');
const pool = mysql.createPool({
  host: 'your_host',
  user: 'your_user',
  password: 'your_password',
  database: 'your_database',
  connectionLimit: 10, // Set the maximum number of connections
});
const connection = pool.getConnection((err, conn) => {
  if (err) throw err;
  // Use the connection
  conn.query('SELECT * FROM your_table', (error, results) => {
    // Handle query results
    console.log(results);
    // Release the connection back to the pool
    conn.release();
  });
});

Метод 2: использование async/await с пулом соединений

const mysql = require('mysql2/promise');
const pool = mysql.createPool({
  host: 'your_host',
  user: 'your_user',
  password: 'your_password',
  database: 'your_database',
  connectionLimit: 10,
});
async function executeQuery() {
  const connection = await pool.getConnection();
  try {
    const [rows, fields] = await connection.execute('SELECT * FROM your_table');
    console.log(rows);
  } catch (error) {
    console.error(error);
  } finally {
    connection.release();
  }
}
executeQuery();

Метод 3. Использование событий пула соединений

const mysql = require('mysql2');
const pool = mysql.createPool({
  host: 'your_host',
  user: 'your_user',
  password: 'your_password',
  database: 'your_database',
  connectionLimit: 10,
});
pool.on('acquire', (connection) => {
  console.log('Connection %d acquired', connection.threadId);
});
pool.on('release', (connection) => {
  console.log('Connection %d released', connection.threadId);
});
// Use the pool to query the database
pool.query('SELECT * FROM your_table', (error, results) => {
  console.log(results);
});

В этой статье мы рассмотрели различные методы создания пула соединений с использованием библиотеки mysql2 в Node.js. Мы рассмотрели базовое использование mysql2.createPool(), продемонстрировали использование async/await с пулом соединений и представили события пула соединений. Внедрение пула соединений может значительно повысить производительность и масштабируемость ваших приложений, работающих с базой данных MySQL.

Не забудьте настроить параметры пула соединений в соответствии с требованиями вашего приложения и отслеживать его производительность, чтобы обеспечить оптимальное использование ресурсов.