无法确定cassandra中select查询速度慢的原因

bjg7j2ky  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(588)

Cassandra的table上有一亿行。架构为: 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 作为分区键?
另外,我的select查询显然需要很长时间,因为#行不断增加:

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

3zwjbxry1#

对, version 是分区键。 id 在您的案例中是一个集群列。
您可以使用cql跟踪来分析性能问题-https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshtracing.html
根据您的数据分布情况,您可能会进入一个“宽行”场景,在一个单独的行中有许多记录 version 分区,必须读取非常大的分区可能需要时间。

相关问题