Невозможно определить причину медленной скорости запроса выбора в Кассандре - PullRequest
0 голосов
/ 22 января 2019

У меня 100 миллионов строк в таблице Кассандры. Схема такая: id int, key varchar, row_hash varchar, version int и PK: ((версия), id). Запрос для создания этой схемы:

c_sql = "CREATE TABLE IF NOT EXISTS {} (id varchar, version int, row_hash varchar, PRIMARY KEY((version), id))".format( self.table_name )

Делает ли этот оператор version в качестве ключа раздела?

Кроме того, мой запрос на выборку, который, по-видимому, занимает много времени из-за увеличения #rows:

row_check_query = "SELECT {} FROM {} WHERE {}={} AND {}='{}' ".format( "row_hash", self.table_name, "version", self.version, "id", key )

1 Ответ

0 голосов
/ 22 января 2019

Да, version - ключ раздела.id - это столбец кластеризации в вашем случае.

Вы можете использовать CQL Tracing для анализа проблем с производительностью - https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshTracing.html

В зависимости от распределения данных вы можете попасть в "широкую строку"."сценарий, имеющий много записей в одном version разделе, необходимость чтения самого arge раздела может занять некоторое время.

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