AWS Athena上的OFFSET

时间:2017-07-15 03:33:07

标签: amazon-web-services presto amazon-athena

我想在AWS Athena上使用LIMITOFFSET子句运行查询。我认为前者在the latter is not时受到支持。有没有办法用其他方法模拟这个功能?

1 个答案:

答案 0 :(得分:7)

使用OFFSET进行分页效率非常低,特别是对于像Presto这样经常需要执行完整表或分区扫描的分析数据库。此外,查询之间的结果不一定一致,因此在页面之间导航时可能会出现重复或缺失的结果。

在像MySQL或PostgreSQL这样的OLTP数据库中,最好在索引上使用范围查询,在那里您可以跟踪上一页上看到的最后一个值。

在像Presto这样的OLAP数据库中,最好使用缓存数据缓存结果集并执行分页。每次用户点击进入不同页面时,您都不希望在数十亿或数万亿行上运行昂贵的查询。

有关问题和索引方法的更长解释,请参阅这些文章: