본문 바로가기

데이터 분석/Postgre SQL - 정리하자

Limit 문은 언제 어떻게 쓰일까?

반응형

# 구동 환경 : Postgre SQL 12.3 설치 -> pgAdmin4에서 아래 DB 연동 -> DBeaver 7.1.2 버전에서 코딩 진행

# 활용하는 DB = dvdrental.tar

PostgreSQL의 LIMIT 문: 사용 이유와 중요성

안녕하세요, 데이터베이스 애호가 여러분! 오늘은 PostgreSQL에서 조회된 결과의 개수를 제한하기 위해 사용되는 LIMIT 문에 대해 알아보겠습니다. LIMIT 문은 쿼리 결과에서 반환되는 행(row)의 수를 제한하는 SQL 명령어입니다. 이는 데이터베이스 관리 및 최적화에서 중요한 역할을 합니다. 왜 LIMIT 문을 사용해야 하며, 무엇이 중요한지에 대해 자세히 살펴보겠습니다.

 

LIMIT 문을 사용하는 이유

  1. 데이터 양 제한: 대량의 데이터를 다룰 때, 모든 데이터를 한 번에 조회하면 성능 저하나 메모리 문제를 초래할 수 있습니다. LIMIT 문을 사용하여 필요한 만큼의 데이터만 조회함으로써 이러한 문제를 예방할 수 있습니다.
  2. 응답 시간 향상: 쿼리의 결과를 제한하면 데이터베이스의 응답 시간이 빨라집니다. 특히, 웹 애플리케이션이나 API에서 빠른 응답이 요구될 때 유용합니다.
  3. 페이지네이션 구현: 웹 애플리케이션에서 대량의 데이터를 페이지별로 나누어 보여줄 때 LIMIT 문을 사용합니다. 이를 통해 사용자는 한 번에 적당한 양의 데이터를 볼 수 있어 가독성이 향상됩니다.
  4. 테스트 및 디버깅: 쿼리를 테스트하거나 디버깅할 때 전체 데이터 대신 일부 데이터만 조회하여 빠르게 결과를 확인할 수 있습니다. 이는 개발 과정에서 효율성을 높입니다.

 

LIMIT 문의 중요성

  1. 성능 최적화: 대량의 데이터를 조회할 때 쿼리 성능을 최적화할 수 있습니다. 불필요한 데이터 조회를 방지하여 데이터베이스 자원을 효율적으로 사용할 수 있습니다.
  2. 사용자 경험 개선: 사용자가 웹 애플리케이션이나 보고서에서 데이터를 더 쉽게 탐색하고 이해할 수 있도록 돕습니다. 한 번에 너무 많은 데이터를 보여주지 않음으로써 사용자 경험을 개선할 수 있습니다.
  3. 리소스 관리: 서버 자원(메모리, CPU 등)을 효율적으로 관리할 수 있습니다. 대량의 데이터 조회는 서버 리소스를 많이 소모하므로, LIMIT 문을 통해 이를 제어할 수 있습니다.
  4. 안정성 향상: 갑작스러운 대량 데이터 조회로 인한 시스템 과부하를 방지하여 데이터베이스와 애플리케이션의 안정성을 높일 수 있습니다.

 

LIMIT 문의 활용 방식

  1. 기본 사용: employees 테이블에서 상위 10명의 직원만 조회합니다.
  2. ORDER BY와 함께 사용: employees 테이블에서 급여가 높은 상위 5명의 직원을 조회합니다.
  3. OFFSET과 함께 사용: 페이지네이션을 구현할 때 OFFSET을 사용하여 특정 위치에서부터 데이터를 조회할 수 있습니다. 예를 들어, 두 번째 페이지의 데이터를 조회합니다.
  4. 복잡한 쿼리에서 사용: 서브쿼리와 결합하여 특정 조건을 만족하는 상위 N개의 데이터를 조회할 수 있습니다. 예를 들어, 각 부서에서 급여가 높은 상위 3명의 직원을 조회합니다.

 

Limit 절은 특정 집합을 출력시 출력하는 행의 수를 한정하는 역할을 합니다. 부분 범위 처리시 사용되며 Postgre, MySQL등에서 사용 가능합니다.

아래와 같이 기본적인 정보들을 기입한 후 출력 개수에 제한을 주어 결과를 얻습니다.

   SELECT
          FILM_ID      -- COLUMN 선택
         ,TITLE        -- COLUMN 선택
         ,RELEASE_YEAR -- COLUMN 선택
     FROM 
          FILM         --  테이블 선택
 ORDER BY FILM_ID      -- FILM_ID로 정렬
    LIMIT 5            -- 정렬한 값 중 결과 건수를 5건으로 제한
;

이번에는 offset을 활용하여 다른 방식으로 값을 출력해보겠습니다.

   SELECT
          FILM_ID      -- COLUMN 선택
         ,TITLE        -- COLUMN 선택
         ,RELEASE_YEAR -- COLUMN 선택
     FROM 
          FILM         --  테이블 선택
 ORDER BY FILM_ID      -- FILM_ID로 정렬
    LIMIT 4            -- 정렬한 값 중 결과 건수를 4건으로 제한
    offset 3           -- 결과 출력 행의 시작 위치를 3으로 설정
                       -- 0,1,2,3 이므로 4번째 행부터 시작
;
   

이번엔 Rental_rate이 가장 높은 항목 10개를 출력해보겠습니다.

   SELECT
          FILM_ID          -- COLUMN 선택
         ,TITLE            -- COLUMN 선택
         ,RENTAL_RATE      -- COLUMN 선택
     FROM 
          FILM             --  테이블 선택
 ORDER BY RENTAL_RATE DESC -- FILM_ID로 정렬
    LIMIT 10               -- 정렬한 값 중 결과 건수를 10건으로 제한
;

원하는 결과가 출력되었습니다.

결론

PostgreSQL의 LIMIT 문은 대량의 데이터를 효과적으로 관리하고, 쿼리 성능을 최적화하며, 사용자 경험을 개선하는 데 중요한 도구입니다. 데이터를 제한하여 서버 자원을 효율적으로 사용하고, 빠른 응답 시간을 제공할 수 있습니다. LIMIT 문을 잘 활용하면 데이터베이스 작업이 훨씬 더 효과적이고 효율적으로 이루어질 것입니다.

 

다음에는 Fetch 절에 대해서 보도록 하겠습니다.

반응형

'데이터 분석 > Postgre SQL - 정리하자' 카테고리의 다른 글

IN 연산자를 활용해보자  (0) 2024.07.11
Fetch문을 왜 사용해야 할까?  (0) 2024.07.11
Where 문 활용하기  (0) 2024.07.10
Select Distinct 문이란?  (0) 2024.07.05
Order By 문 활용법  (2) 2024.07.05