Стоит ли читать один полный раздел с Кассандры? - PullRequest
1 голос
/ 29 января 2020

Допустим, у меня есть одна таблица

RecordingsByAccountaId (AccountId, a, b, c, x, y, z)

Ключ разделения: AccountId Ключ кластеризации: a, b

Мне нужно выбрать данные для одной учетной записи внутри моего кода, поэтому выполните

Выбрать * из RecordingsByAccountaId, где accountId = 'accountId';

Это дорогостоящая операция ?? ?

Цель состоит в том, чтобы обновить 2-3 строки этой таблицы, но у меня нет никакой информации, кроме accountId.

Это почти то же самое, что запросить одну строку или весь раздел? Поскольку время, которое я видел для выборки между 200 строками и n, имеет разницу в 20-30 миллисекунд?

1 Ответ

1 голос
/ 29 января 2020

Это в основном зависит от размера вашего раздела - сколько строк оно включает. Другой фактор - насколько фрагментирован ваш раздел - находится ли он в одном SSTable (он сжат) или в нескольких SSTable, так что вы будете читать данные из нескольких файлов.

Но обычно, читая раздел внутри одного Файл является последовательной операцией, так как все строки, принадлежащие одному разделу, записываются последовательно, и если размер раздела не очень велик, производительность не должна сильно пострадать (но это также может зависеть от вашего оборудования).

PS Как вы решаете, какие строки вы будете обновлять?

...