2011-01-21 4 views
14

현재 매우 큰 데이터베이스를 만들 가능성이있는 앱을 개발 중입니다. 몇 가지 추가 공간을 허용하기 위해 SD 카드에 앱을 설치할 계획이었습니다. 최근의 거래는 좋은 생각이 아닐 수도 있다고 경고했습니다. 이 행동 방침의 위험을 완화하기 위해 취할 수있는 조치가 있습니까? 아니면 더 좋은 대안이 있습니까?Android에서 대용량 데이터베이스 다루기

답변

11

제목이 (저자가 아님)이 comprehensive post입니다.

전반적으로 SQLite는 파일에 액세스하기위한 SQL 메커니즘이라는 것을 전제로해야한다고 생각합니다. APK 전체에 대한 현재 시장 한도는 50MB입니다. 내부 메모리에 설치하는 경우 APK 크기의 2 배가 필요합니다. sdcard에 설치하려면 명시된 APK 크기 만 있으면됩니다. SQLite는이 파일을 통해 단지 추상화이기 때문에 당신이 등을 선택, 삽입, 업데이트를 수행 할 때, 당신은) 쓰기 비용 2. 읽을 sdcard에 초래 될 것이다) 1 : 여기

당신이에 대해 작업 할 것입니다 성능을 기준으로 soft limit of 10000 records에 대한 언급을 보았습니다. 이 기사는 약간 오래되었으므로 가능성이 높아졌습니다.

그 외의 경우, 가능한 것이 무엇인지 확인하기 위해 몇 가지 테스트를 설정해야 할 것입니다. Google의 간단한 검색 결과 현재까지 어떤 벤치 마크도 표시되지 않았습니다.

+0

좋은 답변입니다. +1. 나는 의심의 여지가 sqlite 파일이 안드로이드에 외부 있다면 다음 제한이 무엇입니까? 데스크톱과 동일하거나 여전히 제한이 있습니까? – Vinay

4

이전에 지적했듯이 SQLite는 당신이 찾고있는 기능을 작은 라이브러리에 포함하고 있습니다. 단순한 파일 액세스를 SQL API를 통해 안정적이고 복구 가능한 트랜잭션 데이터 액세스로 대체하도록 설계되었습니다. 그들의 main page에 대한 요약이 있습니다.

말 그대로 SQLite를 사용하는 수천 개의 프로젝트가 있습니다. 데이터 세트가 매우 커질 경우 (100-200MB 이상) Berkeley DB를 옵션으로 사용하는 것이 좋습니다. Berkeley DB는 최근 SQL API에 대한 지원을 시작했으며 이는 SQLite와 완벽하게 호환됩니다. SQLite SQL 파서, 쿼리 플래너 및 실행 프로그램이 제공하는 기능 외에도 Berkeley DB가 잘 알고있는 안정성과 확장 성을 얻을 수 있습니다. 우리는 SQLite로 행복하게 시작한 몇몇 고객을 보유하고 있습니다. SQLite에서 사용할 수없는 추가 동시성, 확장 성 및 안정성이 필요하다는 것을 깨달았을 때 SQLite 라이브러리를 BDB 라이브러리로 대체하고 응용 프로그램을 다시 컴파일 한 후 며칠 내에 버클리에서 테스트 및 실행했습니다.

저는 Berkeley DB의 제품 관리자 중 한 명입니다. 그래서 조금 편견이 있습니다. :-) 그러나 BDB SQL API를 구현하여 Berkeley DB의 동시성, 안정성 및 확장 성과 결합 된 SQLite의 편재성 및 사용 편의성을 사용자에게 최상의 차원으로 제공 할 수있었습니다. 특히 대규모 데이터 세트를 사용하는 경우 Berkeley DB는 응용 프로그램 성능의 모든 차이를 만들 수 있습니다.

+0

모든 Android 휴대 전화에서 Berkeley DB를 사용할 수 있습니까? Android 앱을 SQLite에서 BDB로 쉽게 전환 할 수 있습니까? –

+1

Berkeley DB는 http://bit.ly/gNWr1C에서 다운로드 할 수 있습니다. BDB 및 BDB Java Edition은 모두 Android에서 실행됩니다. SQL API를 사용하려면 BDB (BDB JE가 아님)를 다운로드해야합니다. 두 제품 모두 Android 용으로 테스트 및 지원되며 Android에서 BDB 기반 응용 프로그램을 실행하는 고객이 있습니다. Berkeley DB를 만들고 BDB 라이브러리에서 응용 프로그램을 가리켜 야합니다. 어떤 라이브러리를 사용하고 있는지 조심해야하지만, 일단 설정이되면 그냥 실행해야합니다.질문이 있으시면 OTN 포럼 (http://bit.ly/g5Fkbz)에 게시하여 알려주십시오. – dsegleau

+0

OTN 포럼 링크가 유용 할 것입니다 : http://bit.ly/dZ86xg – dsegleau

2

위에서 언급했듯이 Android에서 Java Edition이 아닌 Berkeley DB를 사용할 수 있습니다. 사소한 조정이 필요하기 때문에 크로스 컴파일 프로세스 here의 단계를 설명했습니다.

관련 문제