PHP에서 결과를 페이지로 매기는 가장 좋은 방법은 무엇입니까

StackOverflow https://stackoverflow.com/questions/109027

  •  01-07-2019
  •  | 
  •  

문제

사이트에 여러 페이지의 뉴스를 표시해야 합니다.
Limit을 사용하여 db 쿼리에서 페이지 매김을 수행해야 합니까, 아니면 모든 결과를 얻은 후 PHP 스크립트에서 수행해야 합니까?

도움이 되었습니까?

해결책

SQL에서 한도를 사용하세요!매번!

그렇지 않으면 필요한 것보다 훨씬 더 많은 데이터를 낭비하게 되어 스크립트가 불필요하게 느려지고 테이블의 데이터 양이 증가함에 따라 확장성 문제가 발생하게 됩니다.

Limit은 당신의 친구입니다!

다른 팁

사용 제한 - 가능하다면 대량의 데이터를 데이터베이스에서 스크립팅 엔진으로 전송하고 싶지 않습니다.

이를 지원하는 DBMS에서만 작업하려면 DBMS에서 수행하는 것보다 좋습니다.향후 다른 DBMS를 지원하려면 현재 DBMS에 따라 처리할 수 있는 계층을 추가하세요.

일부 기존 라이브러리를 사용하여 다음을 수행할 수 있습니다.

배::휴대용 소형 무선 호출기 출력에 도움이 될 수 있으며 데이터베이스 트래픽을 필요한 것만으로 제한하려면 함께 제공되는 예제에 제공된 래퍼를 사용할 수 있습니다.

여기 지도 시간 방금 구글링해보니 다 나와있네요...

사용하는 것 외에도 LIMIT, 명시적인 사용을 제안합니다 WHERE 절을 사용하여 오프셋을 설정하고 해당 열의 결과를 정렬합니다.예를 들어:

--- First page (showing first 50 records)
SELECT * FROM people ORDER BY id LIMIT 50
--- Second page
SELECT * FROM people WHERE id > 50 ORDER BY id LIMIT 50

이렇게 하면 반환되는 행 수가 원하는 범위 내의 행으로 추가로 제한됩니다.사용하여 WHERE 접근 방식( LIMIT 별도의 오프셋이 있는 절(예: LIMIT 50,50)를 사용하면 다른 자연 키가 있는 레코드를 통해 페이징을 효과적으로 처리할 수 있습니다.이름순 또는 날짜순으로 알파벳순으로.

개인적으로 저는 쿼리를 사용하여 이를 수행하고 싶습니다.분명히 AJAX 등을 다루는 경우 상황이 바뀔 수 있지만 쿼리에서 기본 제한을 수행하고 결과를 출력하는 것만으로도 간단하고 효율적입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top