일반
mySQL에서 connection pool 사용
알 수 없는 사용자
2023. 9. 21. 16:53
SMALL
const pool = mysql.createPool({
host: 호스트명,
user: 유저명,
password: 패스워드,
database: DB명,
waitForConnections: true, // 연결이 사용 가능할 때까지 대기
connectionLimit: 10, // 연결 풀의 최대 연결 수
queueLimit: 0, // 대기열에 들어갈 연결 요청의 최대 수 (0은 무제한)
reconnect: {
// 연결이 끊어졌을 때 자동 재연결 설정
autoReconnect: true,
// 최대 재시도 횟수 및 재시도 간격(ms)
maxReconnects: 10,
reconnectInterval: 2000,
},
});
// 연결 풀에서 연결을 가져와 사용
pool.getConnection((err, connection) => {
if (err) {
console.error('연결 획득 중 오류:', err);
return;
}
// 이곳에서 쿼리를 실행하거나 다른 작업을 수행
connection.query('SELECT * FROM your_table', (queryErr, results) => {
if (queryErr) {
console.error('쿼리 실행 중 오류:', queryErr);
} else {
console.log(results);
}
connection.release(); // 연결을 다시 풀에 반환
});
});
// 애플리케이션이 종료될 때 모든 연결을 닫아야 합니다.
process.on('SIGINT', () => {
pool.end((err) => {
if (err) {
console.error('연결 풀 종료 중 오류:', err);
}
process.exit();
});
});
하지만, 우리 서비스는 애플리케이션을 종료할 필요가 없기 때문에 위 코드는 생략해도 된다.
LIST