12.4 Cassandra数据模型
“卜算子·大数据”一个开源、成体系的大数据学习教程。——每周日更新
- 没有JOIN操作
Cassandra没有表的连接操作,跟关系型数据库设计相比最好的方式是,反(非)规范化设计,设计为两个表连接后的结果表。
没有参照完整性(外键)
虽然表中可以存储别的表的ID,但是没有级联删除的操作,所以没有外键操作。非规范化的设计在Cassandra数据库中表现最佳。适当冗余,相同的数据出现在不同的表中,具有不同的键。
物化视图
基于已经存在的基础表,创建多个非规范化的数据视图(物化视图)。查询优先设计
设计表从查询的结果开始设计表(结果表)。
存储空间设计
Cassandra每个表都是存储在磁盘上的单独文件中,相关的列尽量保持在同一个表中(磁盘文件)。
搜索单个分区的查询性能最佳,优化最小搜索分区数量。排序设计
Cassandra查询中的ORDER BY仅支持聚类列(Clustering columns)排序。分区单元值计算方法
避免分区太宽,分区中的单元值太大。
分区中的单元值计算方法:
分区中的单元值=静态列数+表的行数*(列数-主键列数-静态列数)
Cassandra的限制是每个分区20亿。
本节完成
长按关注从入门到精通