회사에선 cafe24와 AWS 두 개의 호스팅을 사용한다.
모두 3계층 아키텍쳐를 사용하여, 프레젠테이션 / 애플리케이션 / 데이터베이스의 구조다.
데이터베이스는 기존 쇼핑몰 쪽의 cafe24와 내가 만든 AWS Aurora가 있다.
AWS Aurora는 Pool연결이 빠른데, cafe24쪽 db의 첫 연결이 굉장히 느렸다..
처음 mysql2/promise의 pool연결이 느리고 그 후부턴 빨랐다.
그래서 생기는 문제가 첫로그인시 6초나 걸리는 기현상이 일어났다.. 처음 연결에만 5초가 걸렸다. 끔찍
레퍼런스도 없고 고통받았다.
pool을 어플을 켜자마자 한번 강제로 연결시켜버리고, 로그인이 끝나면 Pool을 해제시키니까 시간이 많이 단축됐다.
exports.mysqlShopStart = async (req, res, next) => {
const mysqlShopPoolStart = await mysqlShopStart();
try {
return res.status(200).json({ msg: 'success' });
} catch (err) {
console.log(err);
return res.status(400).json({ msg: 'fail' });
} finally {
mysqlShopPoolStart.release();
}
};
이런 느낌으로 mysqlShopStart라는 함수를 만들어 놓고, 어플을 켜자마자 실행시켰다.
로그인 속도가 2~3초 정도로 단축됐다.
'Back > DB' 카테고리의 다른 글
MySQL, PostgreSQL (0) | 2023.03.03 |
---|---|
[MySQL, Redis, Node.js] Cache를 활용한 Update query 속도 개선 (0) | 2022.05.09 |