issues
search
YAPP-Github
/
24th-Web-Team-1-BE
9
stars
1
forks
source link
[Fix/#263] 아티클 목록 조회 API 개선: insert 쿼리 삭제 - 트랜잭션 간 불필요한 경합 문제 해결
#292
Closed
hun-ca
closed
1 month ago
hun-ca
commented
1 month ago
🎫 연관 이슈
resolved #263
💁♂️ PR 내용
article_main_card
테이블(조합된 테이블)에 insert 되는 시점 변경
as-is
: 아티클 목록 조회(무한스크롤) 요청이 왔을 때 해당 아티클이 article_main_card에 없을 경우
to-be
: 아티클이 신규 생성되는 시점 and 아티클과 워크북이 연결되는 시점
추가로 스크롤 요청시 트랜잭션
read-only
옵션 사용할 수 있도록 수정
기대효과
호출량이 가장 많을 것으로 예상되는 API에서 insert 쿼리로 인한 비용(인덱스 재정렬) 감소
기존 무한스크롤 요청 시 발생하는 Insert에서 트랜잭션 간 통일 아티클 ID에 대한 경합 문제(duplicated key 예외) 해소
트랜잭션 read-only 활성화로 shared lock 기반 조회(동일 요청 트랜잭션 간 경합 없음)
as-is 상황에서 article_main_card 테이블에 Insert하기 위해 발생한 복잡한 쿼리(5중 조인) 불필요
🙏 작업
🙈 PR 참고 사항
📸 스크린샷
아티클 최초 생성시 (/api/v1/admin/articles)
article_main_card 정상 Insert
workbooks 컬럼은 {} 로 저장됨
이때 아티클 목록 조회시
workbooks: []
로 응답
아티클 - 워크북 매핑시 (/api/v1/admin/relations/articles)
workbooks 컬럼에 JSON ARRAY 들어감
이때 아티클 목록 조회시 아래와 같이 workbook 응답됨
아티클 - 워크북 추가 매핑시 (/api/v1/admin/relations/articles)
workbooks 컬럼에 JSON 오브젝트 추가
이때 아티클 목록 조회시 아래와 같이 workbook 응답됨
아티클 단건 조회로 해당 아티클 조회수를 올린 후 아티클 목록조회시 상위에 위치하는지 확인
아티클 단건조회(/api/v1/articles/183) 27번 호출
조회수 27 및 워크북 2개가 정상 조회되는지 확인
카테고리 파람 추가 후 테스트
🤖 테스트 체크리스트
[ ] 체크 미완료
[x] 체크 완료
🎫 연관 이슈
resolved #263
💁♂️ PR 내용
article_main_card
테이블(조합된 테이블)에 insert 되는 시점 변경기대효과
🙏 작업
🙈 PR 참고 사항
📸 스크린샷
아티클 최초 생성시 (/api/v1/admin/articles)
workbooks: []
로 응답아티클 - 워크북 매핑시 (/api/v1/admin/relations/articles)
아티클 - 워크북 추가 매핑시 (/api/v1/admin/relations/articles)
아티클 단건 조회로 해당 아티클 조회수를 올린 후 아티클 목록조회시 상위에 위치하는지 확인
아티클 단건조회(/api/v1/articles/183) 27번 호출
조회수 27 및 워크북 2개가 정상 조회되는지 확인
카테고리 파람 추가 후 테스트
🤖 테스트 체크리스트