2015-01-04 3 views
1

나는 800,000 개의 행을 가진 거대한 sqlite 데이터베이스를 가지고 있으며, 행이 select * from tbl where id=578511과 같이 끝에 가까우면 오랜 시간이 걸린다. 이것은 쿼리가 데이터베이스의 시작 부분에서 실행되기 때문에 발생하지만, id가 행 개수와 동일하므로 해당 행으로 바로 이동할 수 있습니다.sqlite에서 행으로 직접 이동하는 방법

+2

'id'에 대한 색인이 있습니까? –

답변

2

id를 기본 키로 지정하십시오. 도움이 될 것입니다.

CREATE INDEX tbl_id ON tbl(id); 

또는 데이터를 읽을 자주하는 경우, 당신은 또한 메모리에 유지할 수 있습니다 :

+2

id를 기본 키로 만들어 테이블의 구조를 변경했습니다. 이제는 테이블 끝에 가까운 행을 쿼리 할 때 지연 시간이 없습니다. – krishna

1

어쩌면 당신은 쿼리를 빠르게하기 위해 테이블의 인덱스를 추가 할 수 있습니다.

관련 문제