요즘 sql과 python을 둘다 사용하면서 sql 데이터를 어떻게 하면 저장을 빨리 할 수 있을지 고민하다가 찾은 방법이다.
sql 자체 프로그램 csv 변환을 사용하면 컴퓨터의 사양에 따라 속도가 차이나겠지만, 데이터 row의 개수가 30만개가 넘어가는 순간부터 엄청난 발열과 함께 시간이 오래걸린다.
vscode에서 pandas 라이브러리를 사용하여 csv를 변환하면 이 글을 읽는 사람의 생각보다 더 빨리 변환이 될 것이다. 진짜임(대략 40분 걸리던 것이 8~9분 걸렸다)
그리고 중요한게 컴퓨터 렉도 잘 안걸리고 다른 작업도 병행해서 어느 정도 가능하다.
#%%
import pandas as pd
import pymysql
from datetime import datetime
conn = pymysql.connect(host='ip address', user='root',
password='password', charset='utf8',port = 0000)
query = Select * From table ;
print('start-time : ', str(datetime.now())[:19] )
# data
df = pd.read_sql_query(query,conn)
df.to_pickle('경로/파일이름.pkl')
# 혹은 to_csv('경로/파일이름.csv', index = False)
print('end-time : ', str(datetime.now())[:19])