我有一个包含数据的cassandra表。架构如下。
当我对此表进行插入时,它需要2秒,这非常慢,因为我们需要实时插入1000条记录。我错过了什么? 列表列总是有100个值。
请帮忙。
CREATE TABLE dynodemo.normalized_sensor_data (
user_id timeuuid,
patient_sensor_session_id timeuuid,
co2 int,
dbp list<int>,
ecg list<double>,
ext_co int,
ext_density int,
ext_nitrousoxide int,
ext_o3 int,
ext_orgcmp int,
ext_sulphuroxide int,
ext_temp int,
heart_rate list<int>,
humidity list<double>,
o2 int,
pressure list<int>,
pulse_ox_ir list<int>,
pulse_ox_red list<int>,
raw_ecg list<int>,
respiration_rate list<int>,
rr_int list<int>,
sbp list<int>,
session_end_time timestamp,
session_start_time timestamp,
spo2 list<double>,
PRIMARY KEY (user_id, patient_sensor_session_id)
) WITH CLUSTERING ORDER BY (patient_sensor_session_id ASC);
答案 0 :(得分:2)
收集比正常细胞慢得多。您正在使用大量列表,假设这些列表会对性能产生重大影响。您可能会发现将100个元素序列化为json并将其存储为文本字段(甚至是压缩文本字段)会更容易。
你称这是一个插入,你有12个列表,包含100个项目 - 它实际上是1200个单元格,这是一个公平的数字。 2秒的写入仍然不常见 - 可能是由于某种暂停(可能由于您使用所有这些列表创建的java对象的数量而暂停GC)