MySQL을 사용하여 페이지 매김에 대한 전체 결과를 효율적으로 검색
페이지 매김은 대규모 데이터 세트를 통해 사용자 탐색을 향상시키는 중요한 기능입니다. MySQL에서는 특정 결과 하위 집합을 가져오기 위해 OFFSET 및 LIMIT 절을 사용하여 이를 수행하는 경우가 많습니다. 그러나 필요한 총 페이지 수를 결정하려면 페이지 매김 매개변수를 적용하기 전에 총 결과 수를 알아야 합니다.
일반적으로 개발자는 쿼리를 두 번 실행합니다. 한 번은 LIMIT를 사용하여 하위 집합을 검색하고 다시 한 번 실행합니다. LIMIT 없이 결과를 계산합니다. 이 접근 방식은 불필요한 리소스 소비를 초래할 수 있습니다. 다행히 SQL_CALC_FOUND_ROWS 힌트를 사용하는 더 효율적인 솔루션이 있습니다.
SQL_CALC_FOUND_ROWS 사용:
프로세스를 최적화하려면 원래 SQL 쿼리에 SQL_CALC_FOUND_ROWS를 추가하세요.
SELECT * FROM table_name WHERE category_id = 1 ORDER BY id LIMIT 10 OFFSET 20
이것은 MySQL에게 다음을 계산하도록 지시합니다. OFFSET 및 LIMIT 매개변수를 적용하기 전 일치하는 총 행 수.
총 개수 검색:
쿼리를 실행한 후 일치하는 총 개수를 검색할 수 있습니다. 다음 SQL 문을 사용하는 행:
SELECT FOUND_ROWS()
계산 중 페이지:
총 개수와 LIMIT 매개변수를 알면 총 페이지 수를 쉽게 계산할 수 있습니다.
$totalPages = ceil($totalCount / $limit);
코드 예:
CodeIgniter에서는 이미 쿼리를 정의했다고 가정하고 다음 코드 조각을 사용할 수 있습니다. $query 변수:
$query->sql_calc_found_rows(); $result = $query->get(); $totalPages = ceil($this->db->query('SELECT FOUND_ROWS()')->row('FOUND_ROWS()') / $limit);
SQL_CALC_FOUND_ROWS를 활용하면 추가 쿼리를 실행하지 않고도 총 결과 수를 효율적으로 검색할 수 있어 귀중한 계산 리소스를 절약하고 페이지 매김 기능의 성능을 향상시킬 수 있습니다.
위 내용은 MySQL에서 페이지 매김에 대한 전체 결과를 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!