pbj0812의 코딩 일기

[SQL] not in 과 left join 연산 시간 비교 실험(1/2) 본문

ComputerLanguage_Program/SQL

[SQL] not in 과 left join 연산 시간 비교 실험(1/2)

pbj0812 2020. 10. 15. 01:32

0. 목표

 - not in을 통한 제거와 left join 이후 where 를 통한 제거간의 연산 시간 비교 실험

1. 실습

 1) 데이터 생성

  - df_a.csv : 10만

  - df_b.csv : 1만

import pandas as pd
a = [i for i in range(100000)]
df_a = pd.DataFrame({'a': a})
df_a.to_csv("./df_a.csv")
b = [i for i in range(10000)]
df_b = pd.DataFrame({'a': b})
df_b.to_csv("./df_b.csv")

 2) 테이블 생성

  - Table Data Import Wizard를 통한 테이블 생성 및 삽입

  - index 칼럼을 날리고 a만 가져옴

 3) 데이터 확인

SELECT * FROM sql_test.df_a LIMIT 100;

 4) not in 을 통한 연산시간 확인

  - 연산시간 : 0.091 sec / 0.0000079 sec

SELECT COUNT(A.a)
FROM sql_test.df_a AS A
WHERE
	A.a not in (
		SELECT a FROM sql_test.df_b);

 5) left join 을 통한 연산시간 확인

  - 연산시간 : 64.593 sec / 0.000025 sec

SELECT COUNT(A.a)
FROM sql_test.df_a AS A
LEFT JOIN sql_test.df_b AS B
ON A.a = B.a
WHERE B.a IS NULL;

2. 결과

 - 수치상 말이 안됨...

Comments