DB2 MySQL에서 잠금을 통해 동시성 문제를 제어하는 방법 다중 사용자가 동시에 DB의 데이터를 읽고 수정하는 환경에서 발생하는 중요한 문제 중 하나는 동시성 문제가 아닐까 합니다. 백엔드 개발자로서 동시성 문제는 한 번쯤 고민해 봤을 굉장히 흥미로운 주제일 텐데요. 여러 사용자가 동시에 단일 데이터에 접근하여 조회하고 수정할 때, MySQL에서는 이를 어떻게 관리할까요? 공유 잠금(Shared Lock), 배타적 잠금(Exclusive Lock)MySQL은 동시성 문제를 잠금(Lock) 메커니즘을 통해 제어하며, 대표적인 방법으로 공유 잠금(Shared Lock)과 배타적 잠금(Exclusive Lock)을 사용합니다. 일반적으로 공유 잠금은 읽기 잠금, 배타적 잠금은 쓰기 잠금 으로 불리고 있어요. 이 두 잠금 방식의 차이는 동일한 레코드에 여러 세션이 접.. 2025. 3. 30. LIMIT OFFSET 페이징 쿼리를 개선할 수 있는 방법 대용량 데이터를 다루는 애플리케이션을 개발할 때, 빠르고 정확한 정보를 제공하기 위해서는 페이징 처리와 쿼리 최적화는 필수 요소입니다. 우리는 보통 페이징 쿼리를 작성할 때 관성적으로 LIMIT & OFFSET 구문을 사용하는데, 사실 이 두 구문의 조합은 DBMS 서버에 불필요한 부하를 발생시킬 수 있습니다. LIMIT & OFFSET 페이징 쿼리의 문제점SELECT * FROM table LIMIT 10000 OFFSET 10; LIMIT & OFFSET 방식의 페이징은 페이지 번호가 커질수록 DB가 처리해야 할 데이터 양이 급격히 증가하는 문제를 안고 있습니다. DBMS가 순차적으로 레코드를 읽지 않고 지정된 OFFSET 이후의 데이터만 바로 가져올 수 없기 때문에, OFFSET 이전의 모든 데이터.. 2025. 3. 9. 이전 1 다음