On Fri, 2025-02-07 at 16:16 +0000, Jon Emord wrote:
> explain (analyze, buffers)
> select data_model_id, primary_key
> from entity
> WHERE (data_model_id, primary_key) BETWEEN (123, ‘ABC’) AND (123, ‘DEF’)
> limit 101;
> QUERY PLAN
>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> Limit (cost=0.70..6.37 rows=101 width=31) (actual time=0.094..2712.844 rows=100 loops=1)
> Buffers: shared hit=97259
> -> Index Only Scan using entity_data_model_id_primary_key_uniq on entity (cost=0.70..873753.60 rows=15581254
width=31)(actual time=0.093..2712.836 rows=100 loops=1)
> Index Cond: ((ROW(data_model_id, primary_key) >= ROW(123, 'ABC'::text)) AND (ROW(data_model_id, primary_key)
<=ROW(123, 'DEF'::text)))
> Heap Fetches: 4
> Buffers: shared hit=97259
> Planning:
> Buffers: shared hit=104
> Planning Time: 0.204 ms
> Execution Time: 2712.873 ms
How is the index "entity_data_model_id_primary_key_uniq" defined?
Yours,
Laurenz Albe