我有一个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
答案 0 :(得分:0)
对于你的问题#1,因为你的意思是更新不同表中的列值,毫无疑问,你必须更新所有表。
对于问题#2,首先你可以进行批量更新,当他们的分区在同一个节点上时,几个表的批量更新性能最好,一种方法是确保使用相同的列作为这些的分区键表格,例如为person_id。
但是上面的cassandra桌面设计看起来完全错了。您需要记住的cassandra中的一件事是对于相同的主键值,您只能在表中有一行,并且使用相同的主键值插入或更新,具有相同的insertOrUpdate效果。
e.g。对于您的第二个表,不可能有两个具有相同fname值'tom'的行。如果使用fname ='tom'插入两行,则第二个插入行实际上会对第一个插入插入的行进行更新。