키 값 저장소에서 인덱스로 데이터베이스 테이블을 시뮬레이션하는 가장 쉬운 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2272996

문제

키 값 저장소에서 인덱스로 데이터베이스 테이블을 시뮬레이션하는 가장 쉬운 방법은 무엇입니까? Key value Store에는 원거리 쿼리가없고 주문 된 키가 없습니다.

내가 시뮬레이션하고 싶은 것들 (우선 순위) :

  1. 테이블을 만듭니다
  2. 열을 추가하십시오
  3. 인덱스를 만듭니다
  4. 기본 키를 기반으로 한 쿼리
  5. 임의 열을 기반으로 한 쿼리
도움이 되었습니까?

해결책

사용하는 경우 레 디스 (문자열, 목록, 세트 등을 지원하는 고급 키 가치 저장소) 그러면 매우 쉽습니다. 나는 이미 개발했다 C# Redis Client POCO의 데이터 모델 저장에 대한 기본 지원이 있습니다. 이 동일한 Poco는 사용할 수 있습니다 ormlite RDBMS에 저장합니다.

그건 그렇고 Redis는 빠르고, 나는 기준 1.2 초 이내에 전체 Northwind 데이터베이스 (3202 레코드)를 저장하고 검색합니다. (3yo imac의 유닛 테스트 내부에서 실행).

엔터티를 두 가지 방법으로 저장합니다

  • 클래스 유형 이름과 기본 키를 결합하여 고유 한 키를 만들기 위해 고유 한 엔티티 urn:user:1
    • 그런 다음 다음과 같은 키를 사용하여 모든 엔티티를 추적하기 위해 별도의 기본 키 세트 (Redis 세트)를 유지합니다. ids:user
  • Redis Server 측면 목록에서 - 페이징을 지원하는 테이블과 매우 흡사하고 다음과 같은 키를 사용합니다. lists:user

다른 팁

해시 가능 또는 사전을 사용하십시오. 고유 한 키 값을 원한다면 Guid 또는 Hashcode를 사용할 수 있습니다.

키-값 스토어는 키를 주문하고 키에 대한 원거리 액세스를 지원해야합니다.

그런 다음 두 가지 사전을 만들어야합니다.

id -> payload

그리고

col1, id -> NULL

, 어디 payload 데이터베이스 테이블에 포함 된 모든 데이터가 포함되어야하며, 두 번째 사전의 키에는 값이 포함되어야합니다. (col1, id) 첫 번째 사전의 각 항목에서.

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