Back/DB

    MySQL, PostgreSQL

    비교 연결 방식 쿼리 구문 차이 인덱싱 서버내 실사용 차이

    [MySQL, Redis, Node.js] Cache를 활용한 Update query 속도 개선

    그지같은 Update 속도 때문에, 여러 곳에서 병목 현상이 났다. 프로덕트 성격상, update, Insert, delete가 활발한 table이 있는데, 이 곳에서 데드락도 잘 걸리고, 고통스러웠다. 매번 투매니커넥션 뜰 때마다, 프로세스 리스트에서 병목 현상을 일으키는 쿼리를 보고, 놀러갈 때도, 노트북을 들고다니며, 눈물의 스크립트를 날리는 고통을 받았다... 이번에 시간이 좀 나서, 어떻게든 개선해보려했다. 전체를 다 고치는건, 공수가 너무 들어서 힘들었고, 일단 임시조치를 취했다. 처음엔 서브쿼리, 임시테이블을 활용했으나, 이것도 여의치 않아서, 그냥 캐시를 활용하기로 했다. Redis를 활용해서, Pk를 캐시로 만들었다. redis.commend는 미리 모듈화해 둔 redis 명령어 함수다..

    [Node.js, MySQL] Pool.getConnection() 속도 문제

    회사에선 cafe24와 AWS 두 개의 호스팅을 사용한다. 모두 3계층 아키텍쳐를 사용하여, 프레젠테이션 / 애플리케이션 / 데이터베이스의 구조다. 데이터베이스는 기존 쇼핑몰 쪽의 cafe24와 내가 만든 AWS Aurora가 있다. AWS Aurora는 Pool연결이 빠른데, cafe24쪽 db의 첫 연결이 굉장히 느렸다.. 처음 mysql2/promise의 pool연결이 느리고 그 후부턴 빨랐다. 그래서 생기는 문제가 첫로그인시 6초나 걸리는 기현상이 일어났다.. 처음 연결에만 5초가 걸렸다. 끔찍 레퍼런스도 없고 고통받았다. pool을 어플을 켜자마자 한번 강제로 연결시켜버리고, 로그인이 끝나면 Pool을 해제시키니까 시간이 많이 단축됐다. exports.mysqlShopStart = async (..