2012-02-26 2 views
0

Android에서 사전 응용 프로그램을 구현하려고합니다. 사용자가 EditText에 문자를 입력하거나 문자를 삭제하면 응용 프로그램은 데이터베이스를 쿼리하고 EditText의 텍스트로 시작하는 모든 항목을 표시합니다. 내가 사용하는 데이터베이스가 80000 개가 넘는 행을 포함하고 있기 때문에 쿼리 성능이 원하는만큼 좋지 않습니다. 그러나 실제 문제는 사용자가 EditText에서 문자를 삭제할 때 발생합니다. 그러므로 나는 Stack 객체에 Cursor 객체를 저장하는 것을 권장한다. 사용자가 문자를 삭제하면 응용 프로그램은 스택에서 이전 커서를 팝하고 사용합니다. SQLite 쿼리에서 반환 된 Cursor 객체를 저장하는 것은 나쁜 생각입니까?안드로이드에 SQLite Cursor를 저장하는 것은 나쁜 생각입니까?

답변

2

"like"를 사용하는 쿼리가 관계형 데이터베이스에 실제로 적합하지 않기 때문에 SQL 데이터베이스가이 목적을 위해 올바른 도구가 아닐 수도 있습니다. 각 항목에 접두어를 저장하고 색인을 생성하여 데이터를 비정규 화하는 경우 성능이 향상 될 수 있습니다. 그리고 점수의 종류를 추가하는 것을 잊지 말고, 항목의 우선 순위를 정하십시오 (예를 들어, 항목에 선정 된 점수가 높은 경우)

0

많은 경우 커서를 저장하는 것이 좋지 않을 수도 있습니다. 커서 개체 자체는 쿼리의 모든 결과를 보유합니다.

관련 문제