inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

게시글 목록 API - 무한 스크롤 설계

안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.

해결된 질문

51

박동훈

작성한 질문수 8

0

 

무한스크롤을 공부하면서 쿼리플랜을 자세히 살펴보았습니다. rows라는게 예상 스캔 행 수 라고 찾게 되었는데요, offset을 사용하지않고 마지막 last_article_id로 limit 30개 해서 30개만 스캔하면 될줄 알았는데, 저는 6백만개가 나오고 강사님은 5522497개 (무한 스크롤 설계 - 6:31초)가 나오는걸 알게 되었어요. 이게 시간은 빠르긴한데 뭔가 스캔하는게 많아서 이상하다 싶었어요.. 그래서 인덱스를 지우고, (article_id desc, board_id)로 위치도 바꾸거나, use index로 인덱스를 강제하게 해봤는데 결과가 똑같더라구요.. 이 row를 줄이기 위한 방법이 있는지 궁금합니다. cladue에서는 최악의 경우의 row를 보여준다고 하면서도, 또다른 답변으로는 쿼리 수정으로 최적화해야한다 나뉘더라구요. 최악의 경우라 해도 왜 6백만개나 scan하는지.. 그냥 속도빠르니깐 넘어가도 상관없는지 의심이 들어서 더 찾아볼수있는 방법이나 조언 부탁드립니다.

 

감사합니다. 강의 거의 완강햇다가 한번 더 다시 듣고있습니다.

java mysql spring-boot kafka redis

답변 1

0

쿠케

동훈님, 안녕하세요!

 

쿼리 플랜에서 나오는 rows는 통계치 기반이고 실제로 그렇게 스캔하는게 아니므로 문제될 부분은 없습니다.

줄이는 방법에 대해서 고민해본 적은 없고, 줄여야하는 이유에 대해서도 크게 신경 쓸 필요는 없을 것 같습니다.

플랜은 실제로 스캔하는게 아니라 말 그대로 예상치를 기반으로 만들어진 계획으로 인지하시면 됩니다.

반드시 플랜과 동일한 방식으로 수행되는 것도 아니고요.

rows 수가 강의와 다르게 나오는 것에 대해서도, 각 환경의 데이터 분포나 통계치 갱신 시점 등에 따라서 차이가 있다고 봐주시면 될 것 같습니다.

실제 쿼리는 LIMIT만큼 스캔하고 종료됩니다!

consumer에서 에러가 발생할 경우 데이터 유실 문의

0

34

2

게시글 테스트 데이터 삽입

0

41

2

정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?

0

91

2

좋아요 기능 정합성 보장 방법

0

87

2

좋아요 동시성처리 최적의 선택?

1

108

2

프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해

0

82

2

조회수 조회 로직 질문

1

59

2

비로그인 유저도 어뷰징 방지 정책

1

60

2

CommentServiceTest의 테스트 로직 질문

0

47

2

무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문

1

68

2

path 쿼리 관련 질문드립니다!

0

50

2

antigravity 에디터를 쓰신다면 종료해주세요

1

115

0

프로젝트 구조

0

79

2

article_like_count api test

0

65

2

이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.

0

93

2

[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제

0

81

2

findByPath에서 articleId로도 검색을 해야 할 것 같아요.

0

84

3

jpa ddl-auto none을 하는 이유와 join 방법

0

90

2

팩터리 메소드와 response 객체 사용 이유가 궁금합니다!

0

82

2

커서 기반 페이지네이션 과 무한 스크롤링

0

91

2

게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기

0

92

2

멀티 모듈이 아닌 MSA 환경에서 common

0

143

2

2Depth 강의 도중 궁금한 점 있어요!!

0

69

2

샤딩에 대해서 궁금점있습니다.

0

108

2