【问题标题】:How to make a paged Select query and get aggregated results from many shards如何进行分页选择查询并从多个分片中获取聚合结果
【发布时间】:2012-10-21 20:07:21
【问题描述】:

在分片环境中,数据将被拆分到不同的机器/分片。我想知道如何创建一个返回分页结果的查询(例如第 2 页,10 个结果或第 10 页,20 个结果)?

我知道它与主键有关。使用单个 RDBMS 很容易,因为您有一个自动增量列,因此很容易获取最后 10 个项目并返回分页数据。

【问题讨论】:

  • 分片与集群不同吗?

标签: mysql sql sharding data-paging


【解决方案1】:

我为 ScaleBase 工作,它是一个完整的横向扩展解决方案的制造商,如果你愿意,它是一个“自动分片机”,分析数据和 SQL 流,在 DB 节点之间拆分数据,负载平衡读取,并在运行时汇总结果——因此您不必这样做!

你可以看到我对这个线程关于自动增量的回答:Sharding and ID generation as instagram

另外,看看我在http://database-scalability.blogspot.com/ 上关于 Pinterest 的帖子,然后和现在......

具体来说 - 将多个分片的结果合并为 1 个结果是地狱。可能是边缘情况,GROUP BY,ORDER BY,JOINs,LIMIT,HAVING。我必须说,在 SB 我们支持大多数组合,这花了我们很长时间。没错,我们需要通用地做,虽然你可以“弯曲”到专有......但仍然......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    相关资源
    最近更新 更多