use*_*430 4 azure-storage azure-table-storage
使用查询通过rowkey获取记录/记录有多好?是否有任何查询只检查行键的意义?我知道你可以结合使用primarykey + rowkey并获取特定记录,或者通过特定的分区键获取所有记录(因此所有相关数据都将快速返回).
我想如果你创建一个查找rowkey的查询,那么当你查询一个包含大量项目的表时,性能会下降,因为它必须查看所有项目.
当你通过rowkey(单独)查询时,你能告诉一个案例吗?我并不是指检索到的结果,而是在查询中发送到azure存储区以返回项目.
Azure表存储(截至目前)构建了两个索引,使查找速度更快/更快,即PartitionKey和Rowkey.如果你有一个分区(或者很少的分区),那么仅通过rowkey查询才有意义.如果您有很多分区,并且只需指定rowkey,则必须查找所有分区.
例如,假设您将社会保险号存储在表存储中.我们来看两个场景......
一个好的分区策略可能是将状态作为分区键.在您的查询中,如果您只是传递PartitionKey ='CA'和RowKey ='123456789'Azure表存储知道要转到的分区以及该分区中的确切行.如果您的查询只是:RowKey ='123456789',则Azure表存储必须扫描所有分区(50个状态)以查找匹配的RowKey.
另一个策略可能是一个巨大的单个分区,其中rowkeys作为社会安全号码.如果您的查询:RowKey ='123456789',那么Azure表存储可以使用rowkey上的索引来非常快速地查找该值.由于只有一个分区,PartitionKey不是查询的一部分,不会减慢它(或至少不应该).
还要记住,Azure表存储在内部可以将分区放在不同的驱动器上,以便进行大量使用.因此,为具有大量分区的大型表指定partitionkey是理想的选择.
| 归档时间: |
|
| 查看次数: |
8733 次 |
| 最近记录: |