2
멀티 삽입에 pymysql.executemany
을 사용하려고합니다.SQL에서 공백으로 인해 성능 차이가 100 배가되는 이유는 무엇입니까?
그러나 VALUES
이후의 공간이 적을수록 실행 시간이 길어집니다. 왜 그런가요?
여기 내 코드는 run
기능을 확인하십시오.
import pymysql.cursors
from functools import wraps
from datetime import datetime
def running_time(func):
@wraps(func)
def deco():
t0 = datetime.now()
res = func()
t1 = datetime.now()
print(t1 - t0)
return res
return deco
CONFIG = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': '',
'db': 'test',
'charset': 'utf8',
'cursorclass': pymysql.cursors.DictCursor,
'autocommit': True,
}
connection = pymysql.connect(**CONFIG)
cur = connection.cursor()
@running_time
def run():
sql = """INSERT INTO table_name(c) VALUES (%s)"""
for i in range(100):
param = ['1'] * 2000
cur.executemany(sql, param)
run()
@running_time
def run():
sql = """INSERT INTO table_name(c) VALUES(%s)"""
for i in range(100):
param = ['1'] * 2000
cur.executemany(sql, param)
run()
출력 :
0 : 00 : 02.765183
0 : 01 : 13.729428
. 이 주제를 참조하십시오 : [link] (https://stackoverflow.com/questions/1017239/how-do-null-values-affect-performance-in-a-database-search) –
나는 이것이 같은 문제가 아니라고 생각합니다. . 데이터의 값이 아닌 SQL의 구문을 혼동합니다. – panda0