데이터베이스에 저장된 특정 개체 유형이 있습니다. 이제이 유형은 인스턴스와 구조가 다른 추가 정보를 얻습니다. 인스턴스 그룹의 경우 정보가 동일하게 구조화되지만 구조는 런타임에만 알 수 있고 시간이 지나면 변경됩니다.RDBMS에서 가장 적합한 키/값 쌍 직렬화 형식은 무엇입니까?
난 그냥 테이블에 BLOB 필드를 추가하고 일부 직렬화 된 형식으로 키/값 쌍을 저장하기로 결정했습니다. 귀하의 경험에 비추어 볼 때 가장 적합한 형식은 무엇입니까?
내 응용 프로그램의 맥락에서이 저장 공간은 보조입니다. 주어진 키/값 쌍 (즉, 일종의 가변 필드 복합 키)에 대한 올바른 인스턴스를 찾는 특정 작업이 빠릅니다. 나는 이것이 전형적인 데이터베이스 인덱싱에 특히 적합한 포맷인가?
또한 같은 키 집합을 공유하는 인스턴스 세트를 찾고 싶을 수도 있습니다 (원하는 경우 "adhoc"클래스).
저는 이것을 Java로 작성하고 있으며 다양한 유형의 SQL 데이터베이스에 저장하고 있습니다. 레이더에는 JSON, GPB 및 원시 Java 직렬화가있어 교차 언어 형식을 선호합니다. 나는 두 가지 기본 전략을 생각할 수 있습니다 :
- 가게 테이블에있는 값의 집합 및 키 세트
- 저장소를 포함하는 별도의 테이블에 외래 키를 추가 할 테이블 의 키/값 쌍
스키마가없는 접근 방식을 선택하면 Amazon.com SimpleDB를 살펴볼 수 있습니다. http://aws.amazon.com/simpledb/ –
데이터의 일부가 이미 스키마가없는 상태에서 일부 객체를 완전히 직렬화하고 저장합니다. FriendFeed와 매우 흡사 한 일반 테이블 (http://bret.appspot.com/entry/how-friendfeed-uses-mysql 참조). 내가 RDBM 기능을 필요로하지 않는 곳에서 엄격한 스키마를 사용하면 작업을 더 어렵게 만들지 만 내 데이터의 일부는 표준 RDBM에 완벽하게 적합합니다. 이 하이브리드 전략을 사용하기 때문에 CouchDB 등으로 전환하고 싶지 않습니다. –
키 - 값 테이블에 대한 의견을 보내 주셔서 감사합니다.나는 이미 그 접근법에 반대했지만, 당신의 글을 읽은 후에 다시 생각해 보았습니다. –