>  기사  >  데이터 베이스  >  MySQL의 일괄 읽기 및 삽입 방법

MySQL의 일괄 읽기 및 삽입 방법

王林
王林원래의
2023-06-15 10:19:49878검색

MySQL은 다양한 웹 애플리케이션과 대기업 시스템에서 널리 사용되는 매우 인기 있는 관계형 데이터베이스입니다. 실제 응용 시나리오에서 대량의 데이터를 읽고 삽입하는 경우 기존의 단일 데이터 작업을 사용하면 비효율적이므로 MySQL은 일괄 읽기 및 삽입 방법을 제공합니다. 이 기사에서는 개발자가 데이터베이스 작업을 더 효과적으로 최적화할 수 있도록 MySQL의 일괄 읽기 및 삽입 방법을 소개합니다.

  1. 일괄적으로 데이터 읽기

일반적으로 데이터베이스 데이터를 읽을 때 SELECT 문을 사용하지만, 많은 양의 데이터를 읽어야 하는 경우 단일 쿼리는 분명히 비효율적입니다. 이때, MySQL에서 제공하는 일괄 데이터 읽기 방법, 즉 LIMIT 문을 사용하여 매번 읽는 데이터 행 수를 제한할 수 있습니다.

"user" 테이블에서 모든 데이터를 읽어야 한다고 가정하면 다음 코드를 사용할 수 있습니다.

SELECT * FROM user;

이렇게 하면 모든 데이터를 한 번에 읽게 되므로 데이터 양이 많을 경우 성능 병목 현상이 발생할 수 있습니다. 이 문제를 해결하기 위해 아래와 같이 일괄 읽기를 수행하고 LIMIT 문을 사용하여 매번 읽는 데이터 행 수를 제한할 수 있습니다.

SELECT * FROM user LIMIT 0, 1000;
SELECT * FROM user LIMIT 1000, 1000;
SELECT * FROM user LIMIT 2000, 1000;

위 코드는 데이터를 3개의 배치로 나누어 1,000개의 조각을 읽습니다. 각 배치의 데이터. 많은 양의 데이터를 한 번에 읽어서 발생하는 성능 저하를 방지하기 위해 읽을 때마다 LIMIT 문을 사용하여 시작 위치와 가져올 데이터 행 수를 지정합니다.

  1. 데이터를 일괄 삽입

매번 하나의 레코드를 삽입하면 많은 시간과 리소스가 소모됩니다. 데이터 삽입의 효율성을 높이기 위해 MySQL에서 제공하는 일괄 삽입 방식, 즉 여러 레코드를 데이터베이스에 함께 삽입하는 방식을 사용할 수 있습니다.

배치를 사용하여 데이터를 삽입하는 기본 단계는 다음과 같습니다.

  • SQL 문 템플릿을 정의합니다.
  • PreparedStatement 개체를 선언합니다.
  • PreparedStatement 객체에 매개변수를 추가하는 루프입니다.
  • PreparedStatement 객체의 excuteBatch() 메서드를 호출하여 일괄 작업을 수행합니다.

다음은 샘플 코드입니다.

Connection conn = null;
PreparedStatement pstmt = null;

try {
    conn = dataSource.getConnection();

    String sql = "INSERT INTO user(name,age) VALUES(?,?)";
    pstmt = conn.prepareStatement(sql);

    for (int i = 0; i < userNumber; i++) {
        pstmt.setString(1, "user" + i);
        pstmt.setInt(2, i * 10);
        pstmt.addBatch();
    }

    pstmt.executeBatch();
} catch (SQLException e) {
    e.printStackTrace();
} finally {
    DBUtil.close(pstmt);
    DBUtil.close(conn);
}

위 코드에서는 preparedStatement를 사용하여 일괄 매개변수를 추가한 후, ExecuteBatch() 메서드를 사용하여 여러 레코드를 데이터베이스에 함께 삽입하는 일괄 작업을 수행합니다.

Notes

일괄 읽기 및 삽입 작업을 사용할 때 다음 사항에 주의해야 합니다.

  • 일괄 작업이 단일 작업보다 항상 더 효율적인 것은 아니며 특정 상황에 따라 사용 방법을 결정해야 합니다. .
  • 일괄 읽기 및 삽입 작업은 대용량 데이터 작업에 적합하지만 작은 데이터 볼륨 작업에는 추가 오버헤드가 발생합니다.
  • 일괄 작업 중에는 메모리 사용량, 데이터베이스 트랜잭션 격리 수준 등의 문제에 주의해야 합니다.

결론

MySQL의 일괄 읽기 및 삽입 방법 도입을 통해 일괄 작업이 대용량 데이터 애플리케이션에서 일반적인 작업 방법이며 데이터베이스 작업의 효율성을 크게 향상시킬 수 있음을 알 수 있습니다. 실제 개발에서는 최적의 성능 목표를 달성하기 위해 특정 상황에 따라 다양한 운영 방법을 선택해야 합니다.

위 내용은 MySQL의 일괄 읽기 및 삽입 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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