我想在 AWS Athena 上运行查询LIMIT
and an OFFSET
条款。我认为前者受到支持,而后者不是。有没有办法使用其他方法来模拟此功能?
Using OFFSET
分页效率非常低,特别是对于像 Presto 这样经常需要执行全表或分区扫描的分析数据库。此外,查询之间的结果不一定一致,因此在页面之间导航时可能会出现重复或丢失的结果。
In an OLTP
对于 MySQL 或 PostgreSQL 等数据库,最好对索引使用范围查询,这样您可以跟踪上一页上看到的最后一个值。
In an OLAP
像Presto这样的数据库,最好缓存结果集并使用缓存的数据进行分页。您不希望每次用户单击转到不同页面时都对数十亿或数万亿行运行昂贵的查询。
有关问题和索引方法的详细说明,请参阅这些文章:
- http://use-the-index-luke.com/no-offset
- http://use-the-index-luke.com/sql/partial-results/fetch-next-page
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)