2012-01-04 2 views
-1

데이터베이스를 검색해야만 26024 개의 항목이 포함되어 계산됩니다. 이전에는 기록이 적었지만 이전에는 10 초 정도 걸리고 앱이 느려졌습니다. 프로세스 속도를 높이는 방법에 대해 조언을 구할 수 있는지, 아니면 내가 잘못한 일을하고 있는지 궁금합니다. 여기에 코드가 있습니다.Android : SQLite에 대한 조언 필요, 느린 검색

  while (cursor.moveToNext()) { 
       String word = cursor.getString(0); 
       if (word.equals(input)) { 
         String nikus = cursor.getString(1); 
           String def = cursor.getString(2); 
        ret.append(" " + nikus + "\n"+ def + "\n"); 
        g = null; 
      } 

편집 : 내 데이터베이스에서 내가는 정의 테이블이 테이블에 세 필드는 하나가 sencond 전체 단어, 비교 될 수있는 단어, 그리고 세 번째는 정의 자체가 있습니다. 희망적으로 그것은 당신들을 조금 더 돕습니다.

CREATE TABLE [definitions] (
    [word] TEXT, 
    [fullword] TEXT, 
    [definition] TEXT); 

EDIT : 47 : 54.678 : E/CursorWindow (4722) 성장에 필요한 여기 01-04 00지고 오류 IM이다 MSIZE = 1048576를 크기 = 17, 여유 공간() = 13, numRows = 15340

+0

이 메서드를 다른 스레드에 넣을 수 있습니다. – Yahor10

+0

무엇을 의미합니까? – Freddy

+0

위에서 설명한 코드를 run()에 넣은 다음 start()를 호출하십시오. – Yahor10

답변

0

위의 의견은 정확합니다. 단어가 입력과 동일한 행만 다시 가져 오는 where 절로 select를 실행해야합니다. 대소 문자를 구분하는 것을 잊지 마십시오. 단어 열의 인덱스는 쿼리가 더 빨리 진행되는 데 도움이됩니다.

+0

단어가 하나 이상 있다면 어떨까요? – Freddy

+0

@Freddy IN 절을 사용할 수 있습니다. 즉 [단어] IN (입력 1, 입력 2, 입력 3 등) –

관련 문제