Java 慢卡桑德拉查询
我有一个cassandra表,代表一个timeseries,带有这个主键Java 慢卡桑德拉查询,java,cassandra,Java,Cassandra,我有一个cassandra表,代表一个timeseries,带有这个主键 PRIMARY KEY ((type, id), scope, namespace_type, namespace_group, name_attribute, event_time) 但是查询速度太慢了 慢速查询跟踪3020ms select * FROM entity_attribute_history WHERE type=? AND id=? AND scope=? AND namespace_type=?
PRIMARY KEY ((type, id), scope, namespace_type, namespace_group,
name_attribute, event_time)
但是查询速度太慢了
慢速查询跟踪3020ms
select * FROM entity_attribute_history WHERE type=? AND id=? AND scope=? AND
namespace_type=? AND namespace_group=? AND name_attribute=? AND event_time>=?
AND event_time<=?
普罗米修斯
这里有很多事情需要考虑-给定时间范围内将读取多少条记录,给定机器上有多少个SSTables,一致性级别是什么,您是否进行了读取修复,等等。首先要做的是在
cqlsh
中的跟踪上运行此查询。然后查看proxystats、tablestats等的输出。请看这里:-最后两个文档-关于数据模型/模式检查,模式调整我猜分区很大。试着在该表上运行nodetool cfhistograms
,看看分区大小是什么样子的。这里有很多事情需要考虑-给定时间范围内将读取多少条记录,给定机器上有多少个SSTables,一致性级别是什么,您是否有读取修复操作,等等。首先要做的是在cqlsh
中的跟踪上运行此查询。然后查看proxystats、tablestats等的输出。请看这里:-最后两个文档-关于数据模型/模式检查,模式调整我猜分区很大。尝试在该表上运行nodetool cfhistograms
,查看分区大小。
nodetool cfhistograms