특정 순서로 반환해야하는 상당한 양의 데이터 (백만 행)가있는 경우이를 수행하는 한 가지 확실한 방법은 각 행에 숫자 인덱스를 놓고 해당 인덱스로 정렬하는 것입니다. 그러나 그 데이터의 중간에 새로운 행을 만들고 싶다면 두 행 사이에 인덱스에 간격이 있어야하거나 "SET SET SET"를해야 할 필요가 있습니다. position = position + 1 WHERE position> new_position "이 될 수 있습니다.데이터베이스에서 많은 양의 순서가 있지만 재정렬 가능한 데이터를 저장하기위한 전략?
이 문제를 처리하는 더 효과적인 전략이 있습니까? 나는 내 행 사이에 큰 간격을 남기고 (아마도 백그라운드 프로세스로 행을 재 배열하는) 최선의 결과를 기대한다. 연결된 목록과 동일한 데이터베이스가 있는가?
EDIT : 색인이 무엇인지, 기존의 순서가 어떻게 처리되는지 (내 첫 번째 문장 읽기) 알아 냈습니다. 정렬 된 색인 중간에 새 행을 삽입하는 데이터 구조가 있는지 궁금합니다. 여전히 끝났어. 기존의 next/prev 포인터는 단일 범위 쿼리로 이것을 수행하는데, 지금까지 내가 아는 한 작동하지 않을 것이다.
어떤 데이터베이스를 사용하고 있습니까? – Oded
gabs 아이디어는 데이터를 추가 할 때 공간이 충분하지 않기 때문에 서버가 데이터를 재배치하기 때문에 제 생각에는 좋은 해결책이 아닙니다. –
나는이 경우 couchdb를 사용하고 있는데, Postgres와 같은 RDBM을위한 해결책이 있는지 알고 싶다. –