问题描述
曾经苦苦挣扎,却从未完成
update votings v
set voter_id = (select pv.number from voters pv WHERE pv.person_id = v.person_id);
该表当前有9600万条记录
select count(0) from votings;
count
----------
96575239
(1 registro)
更新显然正在使用索引
explain update votings v
set voter_id = (select pv.number from voters pv WHERE pv.rl_person_id = v.person_id);
QUERY PLAN
-------------------------------------------------------------------------------------------------------------------
Update on votings v (cost=0.00..788637465.40 rows=91339856 width=1671)
-> Seq Scan on votings v (cost=0.00..788637465.40 rows=91339856 width=1671)
SubPlan 1
-> Index Scan using idx_voter_rl_person_id on voters pv (cost=0.56..8.58 rows=1 width=9)
Index Cond: (rl_person_id = v.person_id)
(5 registros)
这是我要投票的索引
Índices:
"votings_pkey" PRIMARY KEY,btree (id)
"votings_election_id_voter_id_key" UNIQUE CONSTRAINT,btree (election_id,person_id)
"votings_external_id_external_source_key" UNIQUE CONSTRAINT,btree (external_id,external_source)
"idx_votings_updated_at" btree (updated_at DESC)
"idx_votings_vote_party" btree (vote_party)
"idx_votings_vote_state_vote_party" btree (vote_state,vote_party)
"idx_votings_voter_id" btree (person_id)
Restrições de chave estrangeira:
"votings_election_id_fkey" FOREIGN KEY (election_id) REFERENCES elections(id)
"votings_voter_id_fkey" FOREIGN KEY (person_id) REFERENCES people_all(id)
伙计们,在更新运行缓慢中发挥最大作用的任何想法?行数或正在使用的联接?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)