gpt4 book ai didi

sql - 带有 OFFSET 的 PostgreSQL LIMIT 无法超过 100000

转载 作者:行者123 更新时间:2023-12-02 02:42:16 31 4
gpt4 key购买 nike

我正在为我的项目使用 postgres (9.6) docker。加载大量数据(例如 234453)后,我需要使用 limit 和 offset 将数据切成 block 。但我发现我的查询超出了 100000 的限制就被挂起。就像我给限制100000时可以削减。但是当我使用120000时,它就挂了。

已加载数据:234453 行询问:这是工作:docker exec -it pg_1 psql -P pager postgres postgres -t -c “从 schema1.table1 中删除 col_id 不在其中的位置(从 schema1.table1 限制 100000 偏移量 1 中选择 col_id)”

这已挂起:docker exec -it pg_1 psql -P pager postgres postgres -t -c “从 schema1.table1 中删除 col_id 不在其中的位置(从 schema1.table1 限制 120000 偏移量 1 中选择 col_id)”

下一次削减应该是从 100001 到 230000,类似的东西。

你能告诉我,我该怎么做吗?或者我是否做错了什么?

谢谢,苏文杜

最佳答案

Offset Pagination仅当 OFFSET 值相对较小时才有效。

否则,即使您对排序和过滤条件建立了索引,数据库也必须扫描索引并对条目进行计数,直到达到正确的 OFFSET 值。对于非常大的值,这意味着索引几乎被完全扫描。

所以,你最好使用 Keyset Pagination .

关于sql - 带有 OFFSET 的 PostgreSQL LIMIT 无法超过 100000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63380153/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com