반응형
INSERT INTO SELECT는 매우 느리지만 INSERT 또는 SELECT는 여러 번 실행할 때 빠릅니다.
다음과 같은 SQL이 있습니다.
INSERT INTO table1 (column1, column2) (
SELECT column3, column4 FROM table2 WHERE column5 = 'value'
);
- 그
table1
에는 3,500,000 행이 있습니다. - 그
table2
에는 90,000 행이 있습니다. SELECT column3, column4 FROM table2 WHERE column5 = 'value'
는 NO 레지스터(ZERO)를 반환하고 약 0.004초 걸립니다.INSERT INTO table1 (column1, column2) VALUES ('value', 'value')
~0.004초 걸립니다.
하지만 두 가지를 결합하면INSERT INTO SELECT
위와 같이 스테이트먼트에는 최대 7.7초가 소요됩니다.설명이 있나요?해결책이 있을까요?
원본 테이블의 필드 유형이 데 데스티니 테이블과 다르기 때문에 SELECT를 사용하여 INSERT를 실행하면 성능이 저하될 수 있습니다.따라서 INSERT-SELECT가 실행 중일 때 SELECT의 값에 암묵적인 캐스트가 존재하므로 해당 값이 데스티니 테이블에서 유지될 수 있습니다.이러한 암묵적 캐스트는 최상의 성능 방법으로 만들어지지 않으며 값에서 직접 삽입하면 속도가 느려질 수 있습니다.
언급URL : https://stackoverflow.com/questions/67879774/insert-into-select-is-very-slow-but-insert-or-select-are-fast-when-running-sepa
반응형
'programing' 카테고리의 다른 글
__main__py가 뭐죠? (0) | 2022.10.10 |
---|---|
JSON과 JSONP의 차이점은 무엇입니까? (0) | 2022.10.10 |
for-loop의 setTimeout이 연속된 값을 인쇄하지 않음 (0) | 2022.10.10 |
기존 데이터베이스가 있는 Mariadb 다단계 컨테이너 (0) | 2022.10.10 |
Vuetify : 카드 내 2줄 (0) | 2022.10.10 |