본문 바로가기

반응형

전체 글

(35)
낙관적 락과 비관적 락, 그리고 Redis를 활용한 Lock 비관적 락이란?개요비관적 락(Pessimistic Lock)은 DB 단계에서 관리하는 락으로, 이 방식을 사용하면 select 된 데이터를 잠가 다른 트랜젝션이 Update할 수 없도록 제한합니다.락에는 Write Lock과 Read Lock이 있으며, Write Lock을 걸었을 경우 다른 트랜젝션이 Read와 Write가 모두 불가하고, Read Lock의 경우 읽기는 가능하나 쓰기가 불가능합니다. Write Lock의 경우 SELECT 쿼리 뒤에 FOR UPDATE 가, Read Lock의 경우 FOR SHARE 가 붙게됩니다.JPA에서는 @Lock(LockModeType.PESSIMISTIC_WRITE) 와 @Lock(LockModeType.PESSIMISTIC_READ) 로 구현이 가능합니다.비..
MYSQL 정렬 방식(indexsort와 filesort) 개요CURSOR 방식의 조회를 공부하던 중, 정렬 방식에 대한 공부가 필요한 것 같아 정리하고자 합니다.실행 계획 분석먼저 아래의 쿼리를 보겠습니다.select p1_0.product_uid, p1_0.name, p1_0.price, p1_0.thumbnail_image_url from products p1_0where product_uid > 'KRvlj5cFxz08PiR'order by p1_0.created_at desc limit 10; 위 쿼리는 간단한 쇼핑몰의 상품조회 SELECT문으로, 커서 페이지네이션 방식으로 작성되어 있습니다. 정렬 방식은 상품이 등록된 최신순으로 조회를 합니다.해당 쿼리에 대한 실행계획을 조회하면 다음과 같은 결과가 나왔습니다.idselect_typetablepar..
Cursor vs Offset Pagination의 성능 비교 및 최적화 개요SELECT 문으로 다수의 레코드를 가져올 때, 한 화면에 많은 양의 레코드를 한번에 보여줄 수 없을 때가 있습니다. 이 때 데이터 전체가 아닌 일부만 가져오게 되는데, 크게 페이지네이션과 무한스크롤 방식이 있습니다.💡 페이지네이션(Pagination) - Offset Pagination페이지네이션은 디지털 콘텐츠를 웹사이트의 또 다른 페이지들로 분리하는 방법입니다. 사용자는 페이지 하단에 있는 숫자 형식의 링크를 클릭하여 페이지들을 탐색할 수 있습니다. 페이지네이션된 콘텐츠 일반적으로 몇 가지 공통된 주제 혹은 목적들을 지니고 있습니다.무한 스크롤(Infinite scroll) - Cursor Pagination무한 스크롤은 사용자가 페이지 하단에 도달했을 때, 콘텐츠가 계속 로드되는 사용자 경험..

반응형