페이지 매김 및 정렬은 PHP 웹 응용 프로그램의 일반적인 기능이지만 올바르게 최적화되지 않으면 성능에 영향을 줄 수 있습니다. 이 기사는 페이지 매김 및 정렬 효율을 향상시키기위한 몇 가지 최적화 팁을 공유합니다.
제한 및 오프셋 사용
한도 및 오프셋 키워드는 쿼리에서 반환 된 결과 수를 제한하고 지정된 레코드 수를 건너 뛸 수 있습니다. 예를 들어:
$sql
=
"SELECT * FROM `table` LIMIT 10 OFFSET 20"
;
위의 쿼리는 20 번째 레코드로 시작하여 10 개의 데이터를 반환합니다.
쿼리 캐시 사용
쿼리 캐시는 중복 쿼리 결과를 저장하여 데이터베이스에 대한 요청 수를 줄일 수 있습니다. 다음은 PHP에서 PDO 확장을 사용하여 쿼리 캐시의 예입니다.
$stmt
=
$conn
->prepare(
"SELECT * FROM `table` LIMIT 10 OFFSET 20"
);
$stmt
->execute();
$stmt
->setFetchMode(PDO::FETCH_ASSOC);
$cache
=
array
();
while
(
$result
=
$stmt
->fetch()) {
$cache
[] =
$result
;
}
인덱스 사용
인덱싱은 데이터베이스의 쿼리 데이터, 특히 정렬 조건으로 종종 사용되는 인덱싱 열을 속도를 높일 수 있습니다.
쿼리 정렬을 피하십시오
가능하면 정렬 로직을 데이터베이스 쿼리에서 PHP 코드로 이동하여 데이터베이스의 부담을 줄일 수 있습니다. 예를 들어:
$results
=
$conn
->query(
"SELECT * FROM `table`"
);
usort(
$results
,
function
(
$a
$b
) {
,
return
strcmp
(
$a
[
'name'
$b
'name'
});
],
[
전체 테이블 스캔을 피하기 위해 페이지 매김을 사용하십시오
대규모 데이터 세트의 경우 한 번에 모든 레코드를 쿼리하지 말고 페이지를 통해 배치로 데이터를 쿼리하여 성능을 크게 향상시킬 수 있습니다.
백만 레코드가있는 테이블이 있다고 가정 해 봅시다. 한 번에 모든 데이터를 얻고 정렬하려고하면 많은 시간이 걸릴 수 있습니다. 다음과 같은 최적화 전략을 적용하여 :
이러한 최적화 방법을 사용하면 페이징 및 정렬 작업의 실행 효율을 크게 향상시킬 수 있습니다.