更新性能cassandra

时间:2016-02-25 23:18:54

标签: cassandra

我有一个SQL表,它被建模为cassandra运行不同的查询。

 id primary key,
 fname,
 lname,
 age

可以查询所有字段,以便创建多个表

Person_fname

 fname primary key,
 lname,
 age,
 id

Person_lname

 lname primary key,
 fname,
 age,
 id

Person_age

 age primary key,
 lname,
 age,
 fname 

问题: -

1. If first_name is updated for a particular person, Should I need to update all the tables?
2. What would be the performance impact in CASSANDRA because of this update

1 个答案:

答案 0 :(得分:0)

对于你的问题#1,因为你的意思是更新不同表中的列值,毫无疑问,你必须更新所有表。

对于问题#2,首先你可以进行批量更新,当他们的分区在同一个节点上时,几个表的批量更新性能最好,一种方法是确保使用相同的列作为这些的分区键表格,例如为person_id。

但是上面的cassandra桌面设计看起来完全错了。您需要记住的cassandra中的一件事是对于相同的主键值,您只能在表中有一行,并且使用相同的主键值插入或更新,具有相同的insertOrUpdate效果。

e.g。对于您的第二个表,不可能有两个具有相同fname值'tom'的行。如果使用fname ='tom'插入两行,则第二个插入行实际上会对第一个插入插入的行进行更新。