>데이터 베이스 >MySQL 튜토리얼 >SQLAlchemy ORM을 사용하여 효율적인 대량 삽입을 수행하려면 어떻게 해야 합니까?

SQLAlchemy ORM을 사용하여 효율적인 대량 삽입을 수행하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-11-16 07:58:02288검색

How can I perform efficient bulk inserts with SQLAlchemy ORM?

SQLAlchemy ORM을 사용한 대량 삽입

데이터베이스에 데이터를 삽입할 때는 효율성이 중요합니다. 기본적으로 SQLAlchemy는 개별 개체를 테이블에 삽입하므로 대량 작업의 경우 시간이 더 오래 걸릴 수 있습니다.

SQLAlchemy는 대량 삽입을 지원합니까?

예. 버전 1.0.0부터 SQLAlchemy에는 대량 작업이 포함됩니다. 이를 통해 단일 트랜잭션으로 대량 삽입 또는 업데이트를 수행할 수 있습니다.

대량 삽입 수행 방법

SQLAlchemy ORM을 사용하여 대량 삽입을 수행하려면 다음 단계를 따르세요.

  1. 보관하고 싶은 개체 목록 만들기 insert.
  2. 객체 목록을 인수로 전달하여 세션의bulk_save_objects() 메서드를 호출합니다.
  3. 세션을 커밋하여 삽입 작업을 완료합니다.

예:

s = Session()
objects = [
    User(name="u1"),
    User(name="u2"),
    User(name="u3")
]
s.bulk_save_objects(objects)
s.commit()

성능 향상 세션

기본적으로 SQLAlchemy는 모든 작업을 즉시 커밋합니다. 대량 삽입 성능을 향상시키려면 자동 커밋을 비활성화하고 모든 객체가 추가된 후 수동으로 커밋할 수 있습니다. 이렇게 하면 단일 트랜잭션으로 데이터가 데이터베이스에 로드됩니다. 그러나 자동 커밋을 비활성화하면 오류가 발생할 경우 데이터 일관성 문제가 발생할 수 있습니다.

자동 커밋을 비활성화하려면 세션 생성 시 autocommit 매개변수를 False로 설정하세요. 그런 다음 모든 객체가 추가된 후 세션을 수동으로 커밋합니다.

s = Session(autocommit=False)
s.bulk_save_objects(objects)
s.commit()

대량 작업을 사용하고 세션 사용을 최적화하면 대량 데이터 삽입 작업에 대한 SQLAlchemy ORM 애플리케이션의 성능을 크게 향상시킬 수 있습니다.

위 내용은 SQLAlchemy ORM을 사용하여 효율적인 대량 삽입을 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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