정렬 된 목록을 데이터베이스 안에 저장하려고합니다. 다음 작업을 효율적으로 수행하고 싶습니다.
- 삽입 (x)-테이블에 레코드 x 삽입
- 삭제 (x)-테이블에서 레코드 x 삭제
- Before (x, n)-정렬 된 목록에서 레코드 x 앞에있는 'n'레코드를 반환합니다.
- After (x, n)-x 레코드 다음에 오는 'n'레코드를 정렬 된 목록으로 반환합니다.
- First (n)-정렬 된 목록에서 첫 번째 'n'레코드를 반환합니다.
- Last (n)-정렬 된 목록에서 마지막 'n'레코드를 반환합니다.
- 비교 (x, y)-테이블에서 두 개의 레코드 x와 y가 주어지면 x> y인지 찾으십시오.
내가 생각할 수있는 간단한 방법은 일종의 '순위'속성을 테이블에 저장하고 해당 속성을 정렬하여 쿼리하는 것입니다. 그러나이 방법에서는 순위가있는 레코드를 삽입 / 수정하는 데 많은 비용이 소요됩니다. 더 좋은 방법이 있습니까?
특히 Amazon의 SimpleDB를 사용하여 테이블을 구현하려고합니다. 그러나 관계형 데이터베이스에 대한 일반적인 대답도 도움이되어야합니다.
로드 프로파일 업데이트 :
웹 응용 프로그램을 위해 이것을 계획하고 있기 때문에 응용 프로그램을 사용하는 사용자 수에 따라 다릅니다.
100k 명의 활성 사용자가있는 경우 (슈퍼 낙관주의 : P) 하루에 대략적인 예상 수치는 다음과 같습니다.
500k 선택, 100k 삽입 및 삭제, 500k 업데이트
나는 테이블이 총 500k까지 자랄 것으로 기대합니다.
업데이트, 삽입 및 비교 작업을 최적화하려고합니다. 항목의 순위가 지속적으로 변경되므로 테이블을 업데이트해야합니다.