2010-06-01 2 views
2

나는 창문에서 프로그래밍 중이며, 내 정보는 sqlite에 저장한다. 그러나 모든 항목을 얻는 것이 약간 느립니다.SQLite에서 모든 항목을 검색하는 가장 빠른 방법은 무엇입니까?

select * from XXX; 

1.7MB SQLite는 DB에 대한 200-400ms 소요에있는 모든 항목을 검색 :

나는 다음과 같은 방법을 사용하고 있습니다. 너무 느립니다. 누구나 도와 줄 수 있어요!
많은 감사!

답변 해 주셔서 감사합니다.
데이터에 복잡한 작업을해야하므로 매번 앱을 열 때 DB에서 모든 정보를 읽어야합니다.

+0

를 일반적인 애플리케이션에서 매우 자주 모든 항목을 검색 할 수 없습니다. 어쩌면 당신은 이유에 대한 자세한 정보를 제공해야한다 요 이럴 필요가있어. –

+2

모든 행을 피할 수 있습니까? –

+2

왜 200ms가 너무 느린가요? 얼마나 자주 데이터베이스의 모든 행을 읽고 있습니까? 아마 당신은 다른 접근법을 조사해야합니다. – Blindy

답변

1

원하는 열만 선택하면 속도가 약간 빨라질 수 있지만, 그렇지 않으면 모든 데이터를 가져 오기 위해 where 절없이 정렬되지 않은 선택을 수행 할 수 없습니다.

보다 빠른 디스크/cpu가 유일한 옵션입니다.

어떤 종류의 하드웨어입니까?

4

나는 다음을 시도합니다 :

  1. 진공 데이터베이스를 "진공을"
  2. SQLite는 2000 페이지의 기본 캐시 크기로 시작 명령을 실행하여. ("pragma cache_size"명령을 실행하십시오. 각 페이지는 512 바이트이므로 약 1MByte의 캐시가있는 것으로 보이므로 데이터베이스를 포함 할만큼 충분하지 않습니다. "을 실행하여 캐시 크기를 늘리십시오 pragma default_cache_size = 4000 "이렇게하면 전체 데이터베이스를 캐시에 넣을 수있는 2MB 캐시가 생깁니다. 이러한 pragma 명령은 sqlite3 명령 줄에서 실행하거나 프로그램을 통해 다른 쿼리 인 것처럼 실행할 수 있습니다.
  3. 당신이 주문하는 필드에 테이블에 인덱스를 추가합니다.
관련 문제