2012-06-05 2 views
0

거대한 레코드의 페이지 매김에 대한 도움이나 조언이 필요합니다.대용량 데이터 레코드의 페이지 매기기

DB에 갈 때마다 페이지 매김을하고 제한 설정에 따라 레코드를 가져 오는 동안 400,000 개의 레코드가 있습니다.

우리는 60thousand 레코드 세션 값이 저장되지 않으면 모든 레코드를 세션에 추가하려고 시도했습니다. (좋은 옵션이 아닙니다.)

다른 방법이 페이지 매김 거대한 데이터 레코드를 도울 수 있어야합니다.

이 용도로 sphinx/memcache를 사용할 수 있습니까?

+1

4lac 레코드 란 무엇입니까? – JJJ

+0

4 lakh 기록 – user1433824

+0

[위키 백과] (https://en.wikipedia.org/wiki/Lakh) 1 lakh = 100,000. – Maerlyn

답변

1

예를 들어 AJAX를 사용하여 레코드를 검색 할 수 있습니다. 한 번에 100 개 레코드

0

memcache를 사용하여 메모리에서 수행 할 수 있습니다. 작동하지만 메모리가 많이 소모 될 수 있습니다.

데이터 세트에 시간 또는 기본 키 auto_increment 필드를 사용하여 증가하는 키가있는 경우 다음과 같은 쿼리를 수행 할 수 있습니다.

SELECT fieldlists FROM tablename WHERE key > $lastusedkey limit $limit 

페이징을 수행하는 응용 프로그램에서 발생할 수있는 병목 현상으로 인해 전체 데이터베이스를 메모리에 저장하지 않아도됩니다.

2

그래서 무엇이 문제입니까? 데이터베이스 쿼리는 데이터베이스에 도달해야합니다. 성능 문제가 있습니까? 적절한 색인으로 해결할 수 있습니다. 400k는 실제로 10-20 개의 결과로 제한되는 경우에도 거대한 데이터 세트가 아닙니다.

EXPLAIN 당신의 SQL Server가 무엇을하는지 볼 수 있습니다.

페이지 매김이 페이지를 새로 고치고 있다면, 더 단순한 ux를 위해 AJAX를 구현하고 싶을 것입니다.

스핑크스 또는 memcached를 모두 사용할 수 있습니다. Memcached는 DB를 치기 전에 먼저 캐시를 검색 할 수있는 beucase를 구현하기가 더 쉽습니다. 일부 쿼리/db 튜닝은 먼 길을 갈 수 있다고 생각합니다.