暂无图片
shardkey+二级range表 是如何存储数据的? 当进行范围查询时是否需要扫所有set ?
我来答
分享
暂无图片 匿名用户
shardkey+二级range表 是如何存储数据的? 当进行范围查询时是否需要扫所有set ?

shardkey+二级range表 是如何存储数据的? 当进行范围查询时是否需要扫所有set ?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
暂无图片
腾讯云数据库

由于shardkey相当于hash分区(主分区) 所以有时序的数据必定不是聚合到一起的(不相邻) 那么当我们通过时序字段去查询时 查询性能反而会比传统意义上的范围分区表(数据偏有序 相邻)差

这个场景如果对时间列进行hash分区的话,确实会使得数据库需要去所有分片的所有分区里面去查询数据,性能反而会倒退;可以考虑这样一种做法,按照业务对象/用户的id属性去做shard,查询可以带上分区键和时间,这样的话可以数据库可以确定在哪个分片的哪几个子表里面去查找数据;另外关系型数据库对于时序数据的存储压缩和查询优化并没有特殊优化,所以仅适用中小型时序数据存储,如果量大的话可以考虑用腾讯云的时序数据库CTSDB。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏