2015-03-31 2 views
0

Я определение Cassandra таблицы следующим образомCassandra delete performance зависит от количества надгробных камней или количества ячеек?

CREATE TABLE mytable 
(
    colA text, 
    colB text, 
    timeCol timestamp, 
    colC text, 
    PRIMARY KEY ((colA, colB, timeCol), colC) 
) WITH.... 

При удалении с помощью 2 различных запросов:

1. delete from mytable where colA = '...' AND colB = '...' and timeCol = 111 
2. delete from mytable where colA = '...' AND colB = '...' and timeCol = 111 AND colC = '...' 

Существуют различные типы и количество надгробий получения сгенерированные. См здесь https://stackoverflow.com/a/29301627/1439122

Учитывая, что такое же количество строк поражаются в конечном счете клиринговой/уплотнения, делает производительность процесса прессования зависит от количества и типа надгробия или просто количество строк/ячеек получать затронуты?

ответ

1

1 - это надгробная плита, а 2 - это надгробная плита. Я мог ошибаться, но я думаю, что это незначительно для большинства случаев использования. 1 может вызывать больше надгробий или данных, отбрасываемых при чтении (немного сложнее на jvm), если существует множество значений colC. Из двух я подозреваю, что 2 будет (немного) более эффективным, если только одно значение colC, но 1 намного лучше удалить все colC в разделе a/b/time.

Я думаю, что «это зависит» и «возможно, не имеет значения».

+0

В данной комбинации значений colA, colB, timeCol будет обычно 5 значений colC (и, следовательно, 5 записей в таблице). – RRM

0

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

В большинстве случаев удаление разделов даст вам лучшую производительность, так как вы больше не беспокоитесь об этом разделе.

С помощью удаления ячейки вы создаете фрагменты, которые в любом случае не будут умирать за gc_grace_seconds. Внутренняя фрагментация создает проблемы для вашего приложения, а также для Cassandra. Просто подумайте о GC на стороне Кассандры с внутренне фрагментированными данными. Это то, чем вы закончите.

Смежные вопросы