슬로우 쿼리 발생 내가 운영하던 그룹웨어 게시판 서비스에는 '최근 게시글'이라는 특수한 게시판이 존재했다. 보통 게시글은 사용자가 등록한 게시판에 접근해서 조회하지만, 해당 게시판은 모든 게시판의 게시글을 등록 순으로 보여주는 게시판이었다. 내가 막 게시판 서비스를 맡게 되었을 때 전임자 분께서 "해당 API가 속도가 안나오니 언젠간 튜닝을 해야 할거에요"라는 말을 하셨는데, 그 때 속도 체크 해봤을 때는 2~3초 나와서 아직 튜닝할 때는 아니라고 판단하고 냅두고 있었다. 그런데 어느날 인프라 팀에서 특정 고객사에서 해당 게시판의 게시글 리스트를 조회할 때 속도가 너무 오래걸린다는 안내를 받았고, 해당 고객사에 들어가서 확인해보니 API 속도가 약 7초 가량 소요되고 있었다. 속도 저하의 원인이 되었던 ..
mysql

개요 회사 업무 중 어제 날짜의 시작일자(YYYY-MM-DD 00:00:00)와 종료일자(YYYY-MM-DD 23:59:59)를 SELECT절에서 한번에 구하는 쿼리를 구현하게 됐다. 구현하다보니 생각보다 쿼리가 복잡하여 기록 및 공유 하고자 한다. 본 글에서는 어제 날짜의 시작시간과 종료시간을 나눠서 설명한다. 어제 날짜의 시작시간 구하기 (YYYY-MM-DD 00:00:00) 1번. date_sub(now(), interval 1 day)) : 현재시간에서 하루를 뺀 날짜 값을 구한다. date_sub(now(), interval 1 day)) 2번. YYYY-MM-DD HH:MM:SS 형태로 변경한다 cast(date(date_sub(now(), interval 1 day)) as datetime)..