mysql (1)createPool

Creating the dots·2021년 10월 4일
0

project-1-dagachi

목록 보기
1/11

createConenction, createPool

const mysql = require('mysql');
//createConnection
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  database: 'test'
});

//createPool
const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  database: 'test',
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0
});

createPool 특징

  • 공식문서에 따르면, createPool은 모든 연결을 미리 생성하지 않고, 연결 제한에 도달할 때 생성한다.
  • 무료 DBMS인 MySQL에는 커넥션을 자동으로 접속종료해주는 타임아웃이 없는데 (유료 DBMS는 타임아웃 개념이 존재한다) connection pool을 사용하면 query요청을 보냈을때 auto release를 지원한다. pool.query 요청을 보내면, 가능한 커넥션을 가져온후 (pool.getConnection) 쿼리 요청을 보내고 (pool.query) 접속을 종료한다. (pool.release)
    Connection is automatically released when query resolves
  • 사용자 요청에 따라 connection을 생성하다보면 많은 수의 연결이 발생했을때 서버에 과부하가 거릴게 되는데, createPool을 사용하면, 일정수의 connection을 미리 만들어 pool에 보관했다가, 사용자의 요청이 발생하면 연결을 해주고 연결 종료시 pool에 다시 반환해 보관한다. 따라서 데이터베이스 과부화를 방지하고 유동적으로 connection을 관리할 수 있다.

reference

https://cotak.tistory.com/105
https://www.npmjs.com/package/mysql2#using-connection-pools

profile
어제보다 나은 오늘을 만드는 중

0개의 댓글