2015-05-27 2 views
0

У меня этот сценарий в POC Кассандры.Apache Cassandra. Конкретный случай для индекса или таблицы с составным первичным ключом

Таблица

CREATE TABLE B (B-UID UUID, 
    A-UID UUID, 
    CREATED_AT timestamp , 
    JSON text, 
    PARENT_B-UID UUID, 
    POSTALCODE text, 
    CUSTOMER_TYPE text, 
    START_DATE timestamp, 
    END_DATE timestamp, 
    SOME_PRICE int, 
PRIMARY KEY (B-UID)); 

24 K частота вращения записи/2 K оборотов чтения. Для 1 A-UID в большинстве случаев у меня будет 67 B-IUD.

В жизненном цикле моего приложения мне придется искать все B-IUD для конкретной A-IUD.

Мой вопрос: лучше ли создать таблицу с помощью составного первичного ключа или создать индекс для A-IUD? На производительность записи будет влиять составной первичный ключ?

Я уже читал документы в DataStax, и пример, который они там написали, не слишком хорош для моего дела, по крайней мере, в моем понимании !!! :)

ответ

2

Попытка избежать вторичных индексов в максимально возможной степени

Если единственный запрос для извлечения всех B-ВМС для конкретного A-ВМС, имеет составной первичный ключ (А-ВМС, В-ВМС) ,

Если вам также нужно искать конкретного B-ВМК, есть две таблицы

1: Таблица 1: с B-ВМК в качестве первичного ключа и остальных столбцов как
2: Таблица 2: с составной первичный ключ (A-IUD, B-IUD) и оставшиеся столбцы как есть

+0

Спасибо за быстрый ответ! –