"pageable"데이터베이스의 결과 집합을 만드는 데 관련된 원칙이나 구현은 무엇입니까?웹 페이지에서 페이징은 어떻게 작동합니까?
백만 건의 레코드를 메모리에 저장하지 않고 페이지를 넘길 수 있습니까? 100 페이지가있을 때 5에서 50 페이지 번호로 "점프"할 수 있습니까?
페이징 수행 방법에 대한 의사 코드 종류의 설명을 찾고 있습니다.
"pageable"데이터베이스의 결과 집합을 만드는 데 관련된 원칙이나 구현은 무엇입니까?웹 페이지에서 페이징은 어떻게 작동합니까?
백만 건의 레코드를 메모리에 저장하지 않고 페이지를 넘길 수 있습니까? 100 페이지가있을 때 5에서 50 페이지 번호로 "점프"할 수 있습니까?
페이징 수행 방법에 대한 의사 코드 종류의 설명을 찾고 있습니다.
기본 전제는 다음과 같은 기억하는 것입니다
PAGE_SIZE
)var numPages = totalNumRecords/PAGE_SIZE;
Page = 1
Skip((page - 1)*PAGE_SIZE).Take(PAGE_SIZE);
가 가
그래서 무슨 일이 일어날 지입니다
페이지로 필요한 요소가 즉, 페이지 번호를 추적 할 변수를 사용하여 결과에 대한 데이터 소스에 도달하면 원하는 레코드 집합으로 건너 뛰고 지정된 금액을 가져옵니다. 희망적으로 이것은 의미가 있습니다.
일반적으로 다음 단추의 URL에는 페이지를 렌더링하는 데이터베이스 쿼리를 수정하는 내용이 있습니다. 그런 다음 렌더링 된 페이지가 다음 URL의 색인을 범프합니다.
그래서 페이지 하나가 LIMIT (20)이있는 SQL 요청 수 있습니다, 2 페이지는 LIMIT (20)을 가지고뿐만 아니라 OFFSET (20)
그래서 기본적으로 20 항목은 해당 모델에 한 번에로드되지만, 또한 페이지 너무 많은 항목이 너무 많이 오프셋되어로드되고 "다음 페이지"URL이 변경됩니다.
일반적으로 페이지가 다음 링크를 표시해야하는지 여부를 알 수 있도록 총 항목 수에 상대적인 위치를 확인하는 기능도 있습니다.
아. 말이된다. 나는 내가 생각한 프로세스로 어디로 가고 있는지 추측했다. 데이터베이스 레벨에서 "건너 뛴다"는 것이 얼마나 효율적 이었는가하는 것이었지만, 나는 그 질문을 언급하지 않았다. 나는 데이터베이스가 똑똑하다고 생각합니다! – Zabba
집합 기반 접근 방식을 사용하여 데이터베이스에서 쉽게 수행 할 수 있습니다. 그래서 여전히 고효율 일 수 있습니다. 건너 뛰기를 받기 위해 쿼리를 설정하고 제공된 알고리즘을 기반으로 값을 가져와 결과를 얻으려면'SQL'을 사용해야합니다 –