我有一个中等大小的数据库,分布在几个表上,粗略的架构是:
每个表有大约 200,000 行。
我还有一个视图,它基本上将所有这些粘合在一起,以便我可以SELECT
使用一堆 ID(通常根据会话 ID 选择它们)并在一个页面上查看所有相关数据。
该视图有效,查询计划的索引利用率似乎正常,但结果并不快:
> EXPLAIN ANALYZE SELECT(*) FROM overlay WHERE test_session=12345;
QUERY PLAN
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Merge Right Join (cost=7.19..74179.49 rows=10 width=305) (actual time=10680.129..10680.494 rows=4 loops=1)
Merge Cond: (p.data_id = d.id)
-> Merge Join (cost=7.19..75077.04 rows=183718 width=234) …
Run Code Online (Sandbox Code Playgroud)