“名称”是一个包含或多或少 100 万行的表。我已经尝试过这个请求,但它永远不会结束。是否有避免“进入”的问题?
update name
set name_val = true
where name_pk in (select max (name_pk)
from name
group by foreign_key_pk);
如果有必要,我不反对触发器。
查询计划:
"Nested Loop (cost=26073.59..26310.38 rows=200 width=54)"
" -> HashAggregate (cost=26073.59..26075.59 rows=200 width=4)"
" -> HashAggregate (cost=23122.82..24598.20 rows=118031 width=12)"
" -> Seq Scan on name (cost=0.00..19956.21 rows=633321 width=12)"
" -> Index Scan using name_pk on name (cost=0.00..1.16 rows=1 width=54)"
" Index Cond: (public.name.name_pk = (max(public.name.name_pk)))"
2个指标:
CREATE INDEX link_name_foreign_key_pk
ON name
USING btree
(foreign_key_pk);
CREATE UNIQUE INDEX name_pk
ON name
USING btree
(name_pk);
谢谢。