Postgres 성능 문제가 있습니다. 나는 약 500K 행의 표를 가지고있다. 일부 글로벌 검색을 수행하고 루틴을 교체해야합니다. 이 두 UPDATE 문 중 하나가 다른 것보다 훨씬 빠를 수 있습니까? 아니면 성능면에서 꽤 유사할까요?Postgres Regex Replace Performance
update mytable
set mycolumn = regexp_replace(mycolumn, 'ReplaceMe','WithMe', 'g');
update mytable
set mycolumn = regexp_replace(mycolumn, 'ReplaceMe','WithMe', 'g')
where mycolumn like '%ReplaceMe%';
작성된 방식에 따라 where 문을 사용하면 행을 찾는데 걸리는 시간이 줄어들지 않습니다. Postgres는 '% ReplaceMe %'와 같은 표현식이 색인을 사용하지 않기 때문에 (trgm 색인을 사용할 수 없다면) 전체 표를 읽을 가능성이 높습니다. 그러나 두 번째 행은 더 적은 행을 업데이트하므로 더 빨라질 수 있습니다. –
좋아요, 추가했습니다. 정보를 제공해 주셔서 감사합니다! – PearsonArtPhoto
감사. 나는 네 점을 본다. 내 상황의 핵심은 업데이트라고 생각합니다. 어디에 필요하지 않더라도 500K 행을 업데이트합니다. WHERE에서는 변경 될 행만 업데이트합니다 (총 3 % 정도이므로 손이 도움이 될 수있는 곳으로 이동하십시오). – Paulb