2009-04-04 5 views
1

SQLite를 디스크에 저장되는 연관 배열로 사용하고 싶습니다.디스크 백업 연관 배열 용 Sqlite?

이것은 좋은 아이디어입니까? 여기서 인덱스 = 'someindex DB에서

값을 선택처럼 뭔가로 번역되어야 할 것이다

데이터베이스 [ "someindex"] : 나는 SQL에게 내가 뭔가를 할 때마다 구문 분석하는 데에 대한 걱정 '이 차례로 SQL 내부 언어로 변환되어야합니다.

+0

값은 얼마입니까? 그들은 입력 되었습니까? 아니면 문자열입니까? – jmucchiello

+0

지금은 문자열을 사용할 계획입니다. – Unknown

답변

5

SQL 오버 헤드가 걱정되고 간단한 연관 배열 만 필요하면 GDBM이나 Berkeley DB와 같은 dbm 친척이 좋은 선택일까요? > SQL 정말 실제 문제에 따라 달라집니다

+0

그러나 그것들은 GPL – Unknown

+0

입니다. 만약 GPL이 문제라면, 아마 PDB (http://www.mission-base.com/peter/source/) - LGPL 인 것 같습니다. . – andri

1

체크 아웃 SQLite는 매개 변수 <를 이동합니다. 문제 문은 매우 일반적이며 해시 테이블의 크기에 크게 의존합니다.

작은 해시 테이블의 경우 실제로는 텍스트 파일을 선호하는 경우에만 읽고 쓰는 것이 좋습니다 (디버깅에 편리함). 당신의 해시 테이블 인 경우

, 말, 25meg SQLite는보다 작은 아마 당신이

0

을 - 쉬운 방법을

1

SQLite는 꽤 빨리해야 잘 작동 연관 배열을 기반으로 디스크로. prepared statements을 사용하는 것을 잊지 마십시오. SQL을 한 번 구문 분석하고 컴파일하면 여러 번 호출 할 수 있습니다. 그들은 또한 SQL injection attacks에 비해 더 안전합니다. 그렇게한다면, SQLite에서 꽤 좋은 성능을 얻어야합니다.

간단한 디스크 기반 연관 배열의 또 다른 옵션은 파일 시스템입니다. 이것은 꽤 유명한 디스크 기반 연관 배열입니다. 파일 시스템에 디렉토리를 만들고 항목 당 하나의 키를 사용하십시오. 몇 백 개 이상이 필요할 경우, 디렉토리 당 파일 수를 적당히 작게 유지하기 위해 키의 두 글자 접두사 당 하나의 디렉토리를 작성하십시오. 키가 파일 이름으로 안전하지 않은 경우 SHA-1 또는 SHA-256 등을 사용하여 해시를 해시합니다.