我有 5 个表:
users_by_id
users_by_username
users_by_email
users_by_likes
users_by_followers
如果用户注册,我每次都必须写 5 条声明。是不是很贵或者很差?
INSERT INTO users_by_id (...) values (..)
INSERT INTO users_by_email (...) values (..)
INSERT INTO users_by_username (...) values (..)
INSERT INTO users_by_likes (...) values (..)
INSERT INTO users_by_followers (...) values (..)
第二个问题:也许我更新users_by_id我必须写5个Update语句。还有其他解决方案吗?或者说这并没有那么糟糕?
最佳答案
Cassandra 提倡对数据进行非规范化并根据您的查询创建数据模型。您必须编写数据模型,使其能够以良好的性能满足所有查询。为了性能(由于其架构和设计)Cassandra 要求使用分区键进行写入和读取。
在 5 个不同的表中为同一组数据写入 5 次插入并不昂贵。您的读取性能将会更好,并且随着数据大小增加到网络规模,您将感谢您创建 5 个表并向其写入数据的决定。
您可以探索物化 View (Materialized View 和 Datastax Link for Materialized View,但请记住它是一个实验性功能。因此您必须正确理解它,并识别物化 View 的未解决问题。
我建议您学习 Cassandra 数据模型,这将使事情更容易掌握。
关于Cassandra - 我必须做这么多写入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68171646/