Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- RFP
- 파이썬 알고리즘
- 오라클
- 파이썬
- dbeaver
- linux
- it 용어
- Oracle
- python algorithm
- tibero
- it용어
- sql
- HTML
- Oracle VM VirtualBox
- PYTHON
- putty
- 파이썬 데이터프레임
- 리눅스 명령어
- 리눅스
- C#
- Python 라이브러리
- 코딩테스트
- Python DataFrame
- 데이터베이스
- VirtualBox
- 파이썬 전처리
- Algorithm
- csharp
- MariaDB
- 알고리즘
Archives
- Today
- Total
오경석의 개발노트
Oracle_IN, EXIST, JOIN 개념 및 차이점 본문
IN : 몇백 ~ 몇천건 조회, 쉽고 직관적, 모든 컬럼 값을 직접 비교, NULL인식 불가해서 NVL 사용
EXISTS : 몇만 이상, TRUE / FALSE만을 비교, IN 보다 성능 우위
INNER JOIN : IN, EXISTS보다 더 빠르다. 다양한 용도로 사용하기 때문에 직관성과 가독성이 떨어짐. JOIN 조건을 동일한 값이 존재하는 테이블로 설정했을 경우 나오면 안될 여러 행들이 출력
-- IN(값 직접 비교, 직관적, 테이블에 ROW가 늘어날수록 느림, 1만건 이하 ROW에 유리)
SELECT *
FROM PLAYER
WHERE TEAM_ID IN(SELECT TEAM_ID FROM PLAYER);
-- EXISTS(TRUE / FALSE로 값 비교, 직관적, IN보다 빠름)
SELECT *
FROM PLAYER
WHERE EXISTS(SELECT TEAM_ID FROM PLAYER);
-- INNER JOIN(가장 빠름, 비직관적, JOIN 테이블에 동일한 값이 있을 경우 여러행 반환
SELECT A.*
FROM PLAYER A
INNER JOIN (SELECT TEAM_ID FROM PLAYER) B
ON A.TEAM_ID = B.TEAM_ID;
출처 : https://wakestand.tistory.com/511
SQL IN EXISTS JOIN 성능 비교 및 용도 정리글
각종 SQL에서 데이터 조회 시 IN EXIST INNER JOIN을 사용해 조회를 하게 되는데 여기서 IN, EXIST, INNER JOIN 중 뭘 써야 성능이 가장 좋은가 싶을거다 일단 정답은 몇백~몇천건을 조회하는 정도라면 의미
wakestand.tistory.com
'프로그래밍 언어 > Oracle' 카테고리의 다른 글
Oracle_서브 쿼리(Subquery) (0) | 2023.11.24 |
---|---|
Oracle_조인 (1) | 2023.11.15 |
Oracle_SELECT 문장 실행 순서 (1) | 2023.11.12 |
Oracle_ORDER BY 절 (0) | 2023.11.11 |
Oracle_GROUP BY, HAVING 절 (0) | 2023.11.10 |
Comments