>  기사  >  데이터 베이스  >  Python의 excutemany() 메서드를 사용하여 사전 목록으로 MySQL 데이터베이스를 효율적으로 채울 수 있는 방법은 무엇입니까?

Python의 excutemany() 메서드를 사용하여 사전 목록으로 MySQL 데이터베이스를 효율적으로 채울 수 있는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-09 19:32:02249검색

How can I efficiently populate MySQL databases with lists of dictionaries using Python's executemany() method?

Python에서 Executemany를 사용하여 사전 목록으로 MySQL 데이터베이스를 효과적으로 채우기

대규모 데이터 세트를 MySQL 데이터베이스에 삽입하면 종종 비효율성과 잠재적인 데이터베이스가 발생할 수 있습니다. 잠금. 사전 목록으로 표현된 데이터로 작업할 때 이 문제를 해결하려면 Executemany() 메서드를 활용하는 것이 좋습니다.

제시된 시나리오에서 원래 접근 방식은 테이블의 각 행을 데이터베이스에 수동으로 삽입하는 것입니다. 번거롭고 오류가 발생하기 쉽습니다. 이 프로세스를 최적화하기 위해 Executemany()는 단일 함수 호출로 여러 SQL 문을 실행할 수 있는 편리한 방법을 제공합니다.

executemany()를 효과적으로 사용하려면 사전에서 값을 추출하고 목록을 생성하여 데이터를 재구성합니다. 튜플의. 각 튜플은 각 열에 해당하는 값을 포함하는 테이블의 행을 나타냅니다.

itemBank = []
for row in rows:
    itemBank.append((
        tempRow2['Item_Name'],
        tempRow1['Item_Price'],
        tempRow3['Item_In_Stock'],
        tempRow4['Item_Max'], 
        getTimeExtra
        )) #append data

다음으로 매개변수 값에 대한 자리 표시자가 있는 SQL 쿼리를 생성합니다. 이 자리 표시자는 다음에서 튜플의 값으로 대체됩니다. Execmany() 함수를 실행합니다.

q = """ insert ignore into TABLE1 (
        Item_Name, Item_Price, Item_In_Stock, Item_Max, Observation_Date ) 
        values (%s,%s,%s,%s,%s)           
    """

마지막으로 수정된 데이터와 SQL 쿼리를 사용하여 Executemany() 함수를 실행합니다.

try:
    x.executemany(q, itemBank)
    conn.commit()
except:
    conn.rollback()

이 접근 방식은 여러 행을 실행하여 효율성을 크게 향상시킵니다. 단일 작업으로 개별 행 삽입과 관련된 오버헤드를 줄입니다. 또한 더 적은 수의 트랜잭션에 로드를 분산시켜 잠재적인 데이터베이스 잠금을 방지합니다.

executemany()를 활용하여 사전 목록을 MySQL 데이터베이스에 삽입함으로써 개발자는 데이터 삽입 프로세스를 간소화하고 데이터베이스 성능을 향상시키며 잠금 위험이 있습니다.

위 내용은 Python의 excutemany() 메서드를 사용하여 사전 목록으로 MySQL 데이터베이스를 효율적으로 채울 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.