사용자를 위해 cassandra에 테이블을 생성하고 있습니다. 사용자에게는 고유 한 user_id
과 고유 한 display_name
이 있습니다.기본 키를 두 번 조회하거나 기본 키가 아닌 다른 키를 한 번 더 빨리 검색 할 수 있습니까?
내 표는 현재 유사합니다
create table user (user_id text primary key,
display_name text,
joined timestamp,
last_seen timestamp,
...);
을 새로운 사용자가 나는 그들이 입력 한 표시 이름이 이미 다른 사람의 경우 확인해야 계정을 생성합니다. 내가 할 수있는 가장 빠른 방법은 뭐니?
이 프로젝트는 주로 나를위한 학습 프로젝트입니다. 세미 - 실제 세계 상황에서 몇 가지 NoSQL 개념을 실험하고 싶습니다. 에서 찾는 것보다 빠를 것이다 사용자 이름의 존재를 user_by_display_name
을 찾고, 다음
create table user (user_id text primary key,
display_name text,
joined timestamp,
last_seen timestamp,
...);
create table user_by_display_name (display_name text primary key, user_id text);
을 그리고 :
내 자신의 생각은 다음과 같이 두 개의 테이블을 사용한다는 것이다. 이것은 올바른 가정입니까?
는 느낌이 기본 키에 두 조회, user_by_display_name where display_name = ?
내가 해당 사용자에 대한 정보가 필요하면 user_id
user
에서이 단일 조회보다 더 느려질 수 있습니다 사용 후 다른 조회.
user_id PK를 만들고 display_name에 고유 제한 조건을 사용하십시오. – GurV
@ GurwinderSingh 나는 cassandra에 제약이 있다고 생각지 않습니다. 제약 조건이 계산 상 비싸다고 생각했습니다. – theonlygusti