美文网首页
分表后⾮sharding_key的查询怎么处理呢?

分表后⾮sharding_key的查询怎么处理呢?

作者: 嘘寒问暖 | 来源:发表于2022-06-16 23:54 被阅读0次

1. 可以做⼀个mapping表,⽐如这时候商家要查询订单列表怎么办呢?不带user_id查询的话你总不能扫全表吧?所以我们可以做⼀个映射关系表,保存商家和⽤户的关系,查询的时候先通过商家查询到⽤户列表,再通过user_id去查询。

2. 打宽表,⼀般⽽⾔,商户端对数据实时性要求并不是很⾼,⽐如查询订单列表,可以把订单表同步到离线(实时)数仓,再基于数仓去做成⼀张宽表,再基于其他如es提供查询服务。

3. 数据量不是很⼤的话,⽐如后台的⼀些查询之类的,也可以通过多线程扫表,然后再聚合结果的⽅式来做。或者异步的形式也是可以的。

List<Callable<List<User>>> taskList = Lists.newArrayList();

for (int shardingIndex = 0; shardingIndex < 1024; shardingIndex++) { t

askList.add(() -> (userMapper.getProcessingAccountList(shardingIndex)));

}

List<ThirdAccountInfo> list = null;

try {

list = taskExecutor.executeTask(taskList);

} catch (Exception e) {

//do something

}

public class TaskExecutor {

public <T> List<T> executeTask(Collection<? extends Callable<T>> tasks) throws Exception {

List<T> result = Lists.newArrayList();

List<Future<T>> futures = ExecutorUtil.invokeAll(tasks);

for (Future<T> future : futures) {

result.add(future.get());

}

return result;

}

}

相关文章

  • 分表后⾮sharding_key的查询怎么处理呢?

    1. 可以做⼀个mapping表,⽐如这时候商家要查询订单列表怎么办呢?不带user_id查询的话你总不能扫全表吧...

  • 在数据仓库中如何做分桶

    为什么分桶 (1)获得更高的查询处理效率。桶为表加上了额外的结构,Hive在处理有些查询时能利用这个结构。具体而言...

  • 百亿级数据分表后怎么分页查询?

    当业务规模达到一定规模之后,像淘宝日订单量在5000万单以上,美团3000万单以上。数据库面对海量的数据压力,分库...

  • 分库分表后的分页查询

    1. 全局视野法 如果要获取第N页的数据(每页S条数据),则将每一个子库的前N页(offset 0,limit N...

  • 被问住了的面试题

    对于数据量很大的查询操作,怎么提高查询速度 对表建立索引 分表查询按时间分。典型应用:新闻类、qq状态、朋友圈动态...

  • SQL语句集锦

    携带条件连表子查询(条件查询表b后的结果用来查询表a):SELECT a.* FROM 表a AS a INNE...

  • oracle对视图进行update操作测试

    视图查询结果如下: 某些列进行了处理。 原表查询结果如下: 执行update操作后查看视图: update lis...

  • 单个数据库内分表

    分表当成其他表,便于理解。查询方法就用多表查询的方法就行。

  • 京东面试

    二面 项目相关 项目相关,提到水平分表2.怎么进行分表,是否存在数据迁移的问题3.怎么进行跨表查询(ES+hash...

  • sql语句优化

    max(字段)在字段上要建立索引 子查询改写成联表查询 group by 在group by字段建立索引后先进行分...

网友评论

      本文标题:分表后⾮sharding_key的查询怎么处理呢?

      本文链接:https://www.haomeiwen.com/subject/jqdcvrtx.html