Кассандра, где пункт для конкретного столбца - лучший подход - PullRequest
0 голосов
/ 11 октября 2018

Мне нужно использовать условие where при поиске записей с определенным PID в моей базе данных cassandra

id = uuid
pid=  Property Id (text)
created_at = timestamp

Мне нужно найти 5 лучших записей определенного идентификатора свойства.Итак, моя таблица создания выглядит следующим образом.

CREATE TABLE property_tax (
    id uuid,
    state text, 
    area text,       
    balance_type text,
    created_at timestamp,
    created_by text,
    last_paid_at timestamp,
    max_tax float,
    min_tax float,
    pid text,
    prev_balance float,
    prev_interest float,
    property_type text,
    tax_cess float,
    tax_year timestamp,
    total_paid float,
    total_paid_cess float,
    total_paid_tax float,
    PRIMARY KEY (pid,created_at,id)
    );

, а мой запрос выглядит следующим образом

select * from property_tax where pid = 'property1' ORDER BY created_at DESC LIMIT 5;

Он работает в соответствии с моим требованием, но правильный ли мой подход?или это нужно изменить.Есть ли проблемы с производительностью, которые могут возникнуть в будущем.Я смотрю на 500 миллионов записей и расту.

НОВОЕ РЕДАКТИРОВАНИЕ:

Я добавил два столбца 1.state 2.area В штате будет несколько областей

ID объекта (pid) будет иметь несколько записей не более 100 записей

So, I need to query TABLE property_tax for below
1. Find all the pid
2. find all the pid in the area
3. find all the pid in the state
4. find Limit 5 for pid (ORDER_BY created_at DESC)

Большое спасибо Шаши

1 Ответ

0 голосов
/ 11 октября 2018

Если вы всегда будете делать запрос таким образом, добавьте WITH CLUSTERING ORDER BY (created_at DESC);, чтобы вам не нужно было менять порядок чтения (немного более эффективно).Но это хороший запрос для этой таблицы.

Учитывая его 500 миллионов pid, вы имеете в виду, что он будет работать хорошо.Если его 500 миллионов идентификаторов в пределах одного pid, вы можете получить очень широкий раздел, который влияет на производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...