假设我有一张table
按AccountAid记录(accountid,a,b,c,x,y,z)
分区键:accountid集群键:a,b
我需要在代码中获取一个帐户的数据,所以
从recordingsbyaccountaid中选择*其中accountid='accountid';
这是一个昂贵的手术吗???
目标是更新这个表的2-3行,但我没有比accountid更多的信息。
查询一行或整个分区几乎是一样的吗?因为我看到一行200行之间的取回时间相差20-30毫秒?
假设我有一张table
按AccountAid记录(accountid,a,b,c,x,y,z)
分区键:accountid集群键:a,b
我需要在代码中获取一个帐户的数据,所以
从recordingsbyaccountaid中选择*其中accountid='accountid';
这是一个昂贵的手术吗???
目标是更新这个表的2-3行,但我没有比accountid更多的信息。
查询一行或整个分区几乎是一样的吗?因为我看到一行200行之间的取回时间相差20-30毫秒?
1条答案
按热度按时间wnavrhmk1#
这主要取决于分区的大小—它包含多少行。另一个因素是分区的碎片化程度—它是位于单个sstable中(它被压缩)还是位于多个sstable中,因此您将从多个文件中读取数据。
但通常,读取单个文件中的分区是顺序操作,因为属于同一分区的所有行都是顺序写入的,如果分区大小不是很大,那么性能应该不会受到显著影响(但这也可能取决于您的硬件)。
p、 如何决定更新哪些行?