当你为宽行和瘦行设计表时,有人可以给出并告诉我数据是如何布局的.
我不确定我是否完全掌握数据如何以"宽"行展开.
在如何获取数据方面是否存在差异,或者它是否相同,即如果它是有序的,则数据是垂直(瘦)还是水平(宽)组织无关紧要.
更新 是否考虑了主键是否包含多个列?或者,只有当分区键是复合分区键时,表才会有宽行?
宽...瘦...使你的头爆炸的术语......我更喜欢过度简化这样的事情:
这允许我将其视为如下(稍微修改一下C*术语):
Number of RECORDS in a partition
1 <--------------------------------------- ... 2Billion
^ ^
Skinny rows wide rows
Run Code Online (Sandbox Code Playgroud)
分区中的记录较少,skinner是"分区",反之亦然.
在为C*设计时,我始终牢记以下几点:
SELECT * FROM table WHERE username = 'xmas79';PRIMARY KEY (username)usernameSELECT * FROM table WHERE sensor = 'pressure' AND time >= '2016-09-22';PRIMARY KEY (sensor, time)因此,第一种方法是一次性查询,第二种方法是范围查询.要注意的是第二种方法有(主要)的缺点,你可以保持将数据添加到分区,它会得到越来越广泛,伤害表演.
为了控制分区的宽度,您需要向分区键添加一些内容.在上面的传感器例如,如果你不违背你的课程的要求,你可以在"组"一些测量日期,如你在一天按一天群体分裂的措施,使主键一样PRIMARY KEY ((sensor, day), time),这里的分区钥匙变成了(sensor, day).通过这种方法,您可以完全控制分区的宽度(好吧,至少说好).
您只需要在查询功能和所需性能之间找到一个很好的折衷方案.
我建议这三个读数进一步调查细节:
请注意,在第二个到最后一个图片中有一个错误:主键应该是
PRIMARY KEY ((user_id, tweet_id))
在列周围用双括号而不是一列.
| 归档时间: |
|
| 查看次数: |
624 次 |
| 最近记录: |