문제

나는 데이터베이스 사람이 아니라 임베디드 사람입니다. 여러 곳에서 병목 현상이있는 기존 시스템을 재 설계하라는 요청을 받았습니다.

임베디드 장치는 220MHz에서 실행되는 ARM 9 프로세서 주위에 기반을두고 있습니다.

각각 1K의 데이터 (최대 8 제출)를 사용하여 각각 50k 항목 데이터베이스 (250K로 증가 할 수 있음)가 있어야합니다. 그것은 근사입니다 - 필요한 경우 더 정확한 수치를 얻으려고 노력할 수 있습니다.

그들은 현재 sqllite 2를 사용하고 있으며 sqllite 3으로 이동할 계획입니다.

불꽃 전쟁을 시작하지 않고 - 나는 단지 조언을 구하는 완전한 D/B 초보자입니다. "최상의"결정입니까? 나는 이것이 "끈 조각이 얼마나 걸립니까?"라는 것을 알고 있습니다. 질문이지만, 어떤 포인터는 woudl을 크게 환영합니다. 나는 많은 독서 및 연구를하는 것을 신경 쓰지 않지만, 당신이 나를 비행 시작으로 끌어들일 수 있기를 바랐습니다. 감사.

추신 : 총 재 작성은 내장 된 Linux를 고수하지 않을 수도 있지만 Ecos로 전환하면 D/B 형식간에 한 번 변환에 대해 너무 걱정하지 마십시오. 아, 그리고 접근은 최대 몇 초마다 드물게되어야합니다.


편집 : 좋아, 각각 5 ~ 6 개의 필드 중 30k 항목 (100k 이상)이있는 것 같습니다. 그러나 그 중 3 개 이상은 레코드의 검색 키가 될 수 있습니다. 그들은 "데이터가 너무 간단하기 때문에 D/B가 전혀 없다"고 생각하고 있지만 여러 키를 사용하면 QuickSort () 유형 검색과 같은 멋진 물건을 사용할 수없는 것으로 보인다. ). "D/B"에 대한 생각, 데이터 구조만으로도 어떤 생각이 있습니까?

BTW, 하나의 키는 800K입니다. Sqllite가 얼마나 잘 처리할지 잘 모르겠습니다 (아마도 "D/B"를 사용하면 800K를 더 작은 것으로 해시해야합니까?)

도움이 되었습니까?

해결책

또한 SQLITE는 거의 모든 모바일 운영 체제에서 선택한 데이터베이스입니다. SQLITE가 장착 된 Android, iPhone OS 및 Symbian Ship은 인력이 해당 전화 (거의 항상 무기)의 프로세서를 최적화하는 데 소비되었다고 생각합니다.

다른 팁

나는 sqlite를 고수하고 널리 지원되고 기능이 풍부합니다.

  • Firebird (이전에 인터베이스)는 잘 내장되어 있다고 주장합니다.

  • HypersonicQL (HQL)은 작고 빠르며 내장 된 사용에 적합하다고 주장합니다.

아아, 나는 두 주장을 백업 할 개인적인 경험이 없습니다.

Sqlite는 아마도 꽤 안전한 내기 일 것입니다. 그러나 성능이 응용 프로그램에 정말로 중요하고 관계형 데이터베이스가 필요하지 않은 경우 Berkeley DB를 살펴 보겠습니다. 링크 텍스트 . 버클리 DB는 관계형 데이터베이스가 아닙니다. 즉, 데이터가 다른 테이블로 그룹화되어 있고 둘 이상의 테이블에서 데이터를 관련 해야하는 결과 세트를 지속적으로 쿼리 해야하는 경우 관계형 데이터베이스가 필요할 수 있습니다. Berkeley DB는 Look Up Tables와 같은 것에 더 적합합니다 (예 : 데이터는 몇 개의 테이블로 구성되어 있으며 원하는 결과 세트를 생성하기 위해 하나 이상의 데이터를 쿼리 할 필요가 없습니다). 버클리 DB는 매우 빠르지 만 최대한 활용하려면 더 많은 작업이 필요합니다.

그렇다면 대안을 원한다면 Berkeleydb 볼 가치가 있습니다. 예전에는 Sleepycat 소프트웨어가 소유했지만 이제 Oracle에서 제공됩니다. 베어 본 데이터베이스 엔진입니다. SQL이 아닌 직접 프로그래밍 가능합니다. 많은 주요 데이터베이스에서 핵심 엔진의 일부로 사용되며 많은 임베디드 장치의 데이터베이스로 사용됩니다. 라우터에서 라우팅 테이블을 관리하는 데 특히 인기가있었습니다. 요즘 더 세련된 설정을 위해 간과되는 경향이 있지만, 나는 그것이 괜찮고 견고하다는 것을 알았으며, 그것에 대해 이야기하는 숫자에 대해서는 빠르게 번개가 될 수 있습니다.

나도 sqlite3를 제안하겠습니다. 많은 유명한 응용 프로그램에서 사용됩니다.

SQLITE는 괜찮지 만 6 개의 밀롱 행 (동시에 또는 일부 부분)이 포함 된 데이터를 삽입, 업데이트 및 삭제하려는 경우 사용하지 마십시오. 문제는 진공 키워드를마다 수행해야하며 자동 일 때에도 성능을 위해 매우 심각한 병목 현상이됩니다.

8 년 늦었지만 업데이트로 : 나는 RAIMA 데이터베이스 관리자. 작은 풋 프린트 DB를 찾고 있다면 40K로 내려갈 수 있습니다. 내가 RDM을 좋아하는 이유 중 하나는 플랫폼 독립성이며, 32 비트 및 64 비트 기계 및 대부분의 운영 체제에 대한 지원뿐만 아니라 빅 엔디 언 및 리틀 엔디안 아키텍처간에 휴대 할 수 있습니다. 즉, 임베디드에서 사용할 수 있습니다. 첫 번째 게시물에 언급 된 Linux 및 Ecos. 그리고 더 나은 하드웨어를 추가하면서 성능이 향상됩니다. sqlite

나는 임베드 시스템에 익숙하지 않지만 iPhone은 ARM9를 사용하고 sqlite DB로서

01-11-10 embedded.com 뉴스 레터는이 주제를 다루는 데 도움이됩니다. 뉴스 레터는 embedded.com에서 찾을 수 있습니다. embedded.com 기술 포커스 뉴스 레터 (1-11-10) : 데이터베이스 임베딩.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top