반응형
mysql-connector-python
에서 execute()
를 사용할 때, 배열을 활용하여 여러 개의 데이터를 한 번에 처리하는 방법에는 다음과 같은 두 가지가 있습니다.
1. execute()
와 배열 활용 (단일 쿼리, 반복 실행)
Python에서 execute()
는 한 번에 하나의 SQL 문을 실행하는데, 이를 반복문(for
루프)과 함께 사용하여 여러 개의 데이터를 처리할 수 있습니다.
import mysql.connector
# MySQL 연결 설정
conn = mysql.connector.connect(
host="your_host",
user="your_user",
password="your_pass",
database="your_db"
)
cursor = conn.cursor()
# 여러 개의 데이터를 배열에 저장
data_list = [
(1, "Alice", 50000),
(2, "Bob", 60000),
(3, "Charlie", 70000)
]
# 반복문을 사용하여 여러 개의 데이터 삽입
for data in data_list:
cursor.execute("INSERT INTO employees (id, name, salary) VALUES (%s, %s, %s)", data)
# 변경 사항 적용
conn.commit()
print(f"{cursor.rowcount} row(s) inserted.")
# 연결 종료
cursor.close()
conn.close()
🔹 특징
execute()
를 여러 번 호출하여 데이터를 하나씩 처리합니다.- 반복문을 사용하여 여러 개의 데이터를 순차적으로 실행합니다.
- 실행 속도는 비교적 느릴 수 있습니다.
2. executemany()
와 배열 활용 (배치 실행)
executemany()
를 사용하면 여러 개의 데이터를 한 번의 SQL 실행으로 처리할 수 있어 더 효율적입니다.
import mysql.connector
# MySQL 연결 설정
conn = mysql.connector.connect(
host="your_host",
user="your_user",
password="your_pass",
database="your_db"
)
cursor = conn.cursor()
# 여러 개의 데이터를 리스트로 저장
data_list = [
(1, "Alice", 50000),
(2, "Bob", 60000),
(3, "Charlie", 70000)
]
# executemany()를 사용하여 여러 개의 데이터 삽입
cursor.executemany("INSERT INTO employees (id, name, salary) VALUES (%s, %s, %s)", data_list)
# 변경 사항 적용
conn.commit()
print(f"{cursor.rowcount} row(s) inserted.")
# 연결 종료
cursor.close()
conn.close()
🔹 특징
executemany()
를 사용하면 한 번에 여러 개의 데이터를 처리할 수 있어 성능이 향상됩니다.execute()
를 여러 번 호출하는 것보다 빠릅니다.- SQL 문을 여러 번 실행하는 것이 아니라, 한 번의 실행으로 여러 개의 데이터를 처리합니다.
💡 execute()
vs executemany()
비교
메서드 | 실행 방식 | 성능 | 사용 예 |
---|---|---|---|
execute() |
반복문을 사용하여 하나씩 실행 | 느림 | 단일 SQL 실행 또는 소량 데이터 처리 |
executemany() |
한 번에 여러 개 실행 (배치 실행) | 빠름 | 다량의 데이터를 한 번에 삽입 또는 업데이트 |
대량 데이터를 삽입하거나 업데이트할 경우 executemany()
를 사용하는 것이 좋습니다.
반응형
'DB > MySQL' 카테고리의 다른 글
[ MySQL ] Select로 만든 결과 값을 하나의 Table로 만들기 (0) | 2025.01.17 |
---|---|
[ MySQL ] 데이터 타입 알아보기 (0) | 2024.12.17 |
[ MySQL ] COLUMN_KEY 사용하기 (1) | 2024.12.17 |
[ MySQL ] 원격으로 접속하기 (0) | 2024.12.17 |
[ MySQL ] Schema - 테이블 구조 확인하기 (0) | 2024.10.30 |