TiDB 中的 LIMIT 和 OFFSET 是如何实现的?

TiDB 中,可以使用 LIMIT 和 OFFSET 对数据进行分页查询。可是,TiDB 底层的存储引擎是 TiKV。

阅读 TiKV 源码发现,TiKV 似乎没有发现有关 OFFSET 和 LIMIT 的查询接口。相关的只有:

  • rawKV.Scan
  • txn.Scan

这两个接口是通过 key 迭代每一条已经有序的数据行,并且也会返回相应的实际数据。

那么,我的问题是:TiDB 是如何使用 TiKV 实现 OFFSET 和 LIMIT 的呢?


可以到开发者社区讨论讨论~

1赞


看看能不能试着在源码阅读中找到答案。

1赞