Nat*_*ira 4 postgresql indexing uuid
我想以尽可能最好的方式对具有 10k+ 个寄存器的用户表进行分页。我可以使用偏移量和限制,但它显然不如我在许多文章中看到的那样好。偶然发现了键集和光标分页,我认为该键集可能更适合,因为它更容易在 API 中实现(我使用 golang)。问题是键集是如何工作的,从我所看到的,id(主键)被索引,然后用于跨数据库查询:
select * from users where id > ? order by id limit ?
Run Code Online (Sandbox Code Playgroud)
但是,这似乎只适用于整数自动增量 ID,这不是我的情况,我使用的是 UUID (v4)。我怎样才能实现这个键集分页?
这将与 UUID 相同。假设id是UUID主键列,可以这样写
SELECT ... FROM ...
WHERE (order_col1, order_col2, id) > (<previous values>)
ORDER BY order_col1, order_col2, id
LIMIT <page size>;
Run Code Online (Sandbox Code Playgroud)
上的索引可以支持此查询(order_col1, order_col2)。
| 归档时间: |
|
| 查看次数: |
2494 次 |
| 最近记录: |