DB의 결과값을 CSV로 저장할 필요가 있을 수도 있는데, 저장할 양이 많아질 수록 pandas를 이용하면 빠른 속도로
저장할 수 있다.
샘플 : 윈도우 성능 퍼포먼스 데이터 약 80만건
import pymysql
print('start-time : ', str(datetime.now())[:19] )
def filewrite():
with open('mysql_output.csv', 'a') as f:
f.writelines(text[:-1]+'\n')
conn = pymysql.connect(host=' ', user=' ', password=' ' ,db=' ', charset='utf8')
c = conn.cursor()
sql = 'select * from perfomance_log where logtime between "2019-08-10 00:00:00" and "2019-08-10 23:59:59"'
c.execute(sql)
rows = c.fetchall()
for x in rows:
text = ''
for y in x:
y = str(y)
text = text+y+',' # 구분자 : ,
filewrite()
c.close()
conn.close()
print('end-time : ', str(datetime.now())[:19])
pymysql 모듈일 이용하여 csv파일로 저장하였을 때, 약 20분이 소요
start-time : 2019-08-26 00:49:29
end-time : 2019-08-26 01:09:12
import pandas as pd
import pymysql
from datetime import datetime
print('start-time : ', str(datetime.now())[:19] )
conn = pymysql.connect(host=' ', user=' ', password=' ' ,db=' ', charset='utf8')
query = 'select * from perfomance_log where logtime between "2019-08-10 00:00:00" and "2019-08-10 23:59:59"'
df = pd.read_sql_query(query,conn)
df.to_csv(r'mysql_output_pandas.csv', index=False)
print('end-time : ', str(datetime.now())[:19])
pandas를 이용하여 csv파일로 저장하였을 때, 약 2분이 소요
start-time : 2019-08-26 00:53:28
end-time : 2019-08-26 00:55:36
2개의 파일도 용량으로 비교했을 때, 정상적으로 생성된것으로 보여지고 엑셀에서도 읽을 수 있는 csv파일로 정상적으로
저장되었다.
단순히 CSV로 저장할 때는 pandas를 이용하자.
'Mysql, Maria DB' 카테고리의 다른 글
[ Mariadb ] 10.x version install (YUM) (0) | 2019.12.18 |
---|---|
[ Mariadb ] View database Version. (마리아DB 버전보기) (0) | 2019.12.18 |
[ mariadb query ] delete문 (0) | 2019.11.29 |
maria db today sql (오늘 날짜 출력 쿼리) (0) | 2019.09.30 |
maria db column 추가 (0) | 2019.07.22 |
CentOS mariadb slow query (슬로우쿼리) 설정 (0) | 2019.07.05 |
python을 이용한 maria DB 접속 로그 (1) - grafana 시각화 모니터링 (0) | 2019.06.10 |
[Python] maria DB 접속 로그 (1) - 설정 및 모니터링 (0) | 2018.05.12 |