2011-04-09 5 views
0

나는 잠재적으로 수십만 개의 항목을 가진 SQLite 테이블을 가지고 있는데,이 테이블은 백그라운드에서 불규칙한 간격으로 추가되고있다. UI는 wxWidgets wxListCtrl 항목 내에서 사용자가 선택한 임의의 정렬 순서로이 표를 표시해야합니다.SQLite에서 고정 된 테이블 뷰를 만드는 방법은 무엇입니까?

wxLC_VIRTUAL 목록 컨트롤을 사용하고 필요에 따라 LIMITOFFSET을 사용하여 작은 항목 그룹에 대해 쿼리 할 계획이지만 문제가 발생할 것으로 예상됩니다. 백그라운드 프로세스가 현재 보인 항목보다 "위에"있는 항목을 변경하면 현재 표시된 항목의 오프셋이 어떻게 변경되는지 알 수있는 방법이 없습니다.

처리 할 SQLite 트릭이 있습니까? 어쩌면 SELECT 문에 의해 반환 된 모든 레코드를 반복하지 않고 특정 정렬 된 순서로 특정 레코드를 오프셋하는 방법을 식별 할 수 있습니까?

또는 시간이 많이 걸리는 특정 시간에 데이터베이스의 변경되지 않은보기를 만들 수있는 방법이 있습니까?

그 밖의 모든 것이 실패하면 변경된 항목을 저장하고 나중에 추가 할 수 있지만 반드시 수행 할 필요는 없습니다.

답변

1

"사용자 정의 순서대로"보다 적은 항목 수를 계산하여 항목의 인덱스를 찾는 쿼리를 만들어 해결했습니다. 사용자 정의 순서로 인해 작성하기가 다소 복잡하지만 작동하며 거대한 테이블에서도 놀라 울 정도로 빠르게 실행됩니다.

관련 문제