> 일반적인 문제 > 선택 항목에 일괄 삽입하는 방법

선택 항목에 일괄 삽입하는 방법

小老鼠
풀어 주다: 2024-05-10 00:36:20
원래의
1576명이 탐색했습니다.

일괄 삽입에 INSERT INTO SELECT 문을 사용하면 대량의 데이터 삽입 효율성을 효과적으로 향상시킬 수 있습니다. 구체적인 단계는 다음과 같습니다. 일괄 처리 크기를 결정합니다. 수천 행이 권장됩니다. 삽입할 데이터의 하위 집합을 저장할 임시 테이블을 만듭니다. INSERT INTO SELECT 문을 사용하여 소스 테이블의 데이터를 임시 테이블에 삽입하고, LIMIT 절을 사용하여 한 번에 삽입되는 행 수를 제한합니다. INSERT INTO SELECT 문을 다시 사용하여 임시 테이블의 데이터를 대상 테이블에 삽입합니다. 더 이상 필요하지 않은 임시 테이블을 삭제합니다.

선택 항목에 일괄 삽입하는 방법

INSERT INTO SELECT 문을 사용하여 일괄 삽입하는 방법

한 테이블에서 다른 테이블로 많은 양의 데이터를 삽입해야 하는 경우 INSERT INTO SELECT를 사용하세요. 일괄 삽입을 위한 문 삽입은 효율성을 향상시킬 수 있습니다. 일괄 삽입은 대규모 삽입 작업을 더 작은 일괄 처리로 나누어 데이터베이스 서버의 스트레스를 줄이는 방식으로 구현됩니다. INSERT INTO SELECT 语句进行分批插入可以提高效率。分批插入通过将大型插入操作分解成较小的批次来实现,从而减少对数据库服务器的压力。

步骤:

  1. 确定批次大小: 选择一个合适的批次大小,既能充分利用数据库服务器的资源,又不占用过多内存。一个好的经验法则是将批次大小设置为几千行。
  2. 创建临时表: 创建一个临时表来存储要插入的数据的子集。临时表只在当前会话中存在,可用于将数据划分为批次。
  3. 使用 INSERT INTO SELECT 语句插入数据: 编写一个 INSERT INTO SELECT 语句,将数据从源表插入到临时表。使用 LIMIT 子句限制每次插入的行数,以创建一个批次。
<code class="sql">INSERT INTO #temp_table
SELECT TOP (@batch_size) *
FROM source_table
WHERE NOT EXISTS (SELECT 1 FROM destination_table WHERE id = source_table.id);</code>
로그인 후 복사
  1. 从临时表插入到目标表: 再次使用 INSERT INTO SELECT 语句,将数据从临时表插入到目标表。
<code class="sql">INSERT INTO destination_table
SELECT * FROM #temp_table;</code>
로그인 후 복사
  1. 删除临时表: 插入完成后,删除不再需要的临时表。
<code class="sql">DROP TABLE #temp_table;</code>
로그인 후 복사

优点:

  • 提高插入性能
  • 减少对数据库服务器的压力
  • 便于控制批次大小

注意:

  • 使用 IDENTITY_INSERT
  • 단계:
    배치 크기 결정:🎜너무 많은 메모리를 차지하지 않고 데이터베이스 서버의 리소스를 완전히 활용할 수 있는 적절한 배치 크기를 선택하세요. 좋은 경험 법칙은 배치 크기를 수천 행으로 설정하는 것입니다. 🎜🎜🎜임시 테이블 만들기: 🎜 삽입할 데이터의 하위 집합을 저장할 임시 테이블을 만듭니다. 임시 테이블은 현재 세션 내에서만 존재하며 데이터를 배치로 나누는 데 사용할 수 있습니다. 🎜🎜🎜INSERT INTO SELECT 문을 사용하여 데이터 삽입: 🎜 소스 테이블의 데이터를 임시 테이블에 삽입하려면 INSERT INTO SELECT 문을 작성하세요. 배치를 생성하기 위해 한 번에 삽입되는 행 수를 제한하려면 LIMIT 절을 사용합니다. 🎜rrreee
      🎜🎜임시 테이블에서 대상 테이블로 삽입: 🎜 INSERT INTO SELECT 문을 다시 사용하여 임시 테이블의 데이터를 대상 테이블에 삽입합니다. . 🎜
    rrreee
      🎜🎜임시 테이블 삭제: 🎜 삽입이 완료된 후 더 이상 필요하지 않은 임시 테이블을 삭제하세요. 🎜
    rrreee🎜🎜장점:🎜🎜
      🎜삽입 성능 향상🎜🎜데이터베이스 서버에 대한 부담 감소🎜🎜배치 크기 제어가 용이함🎜🎜🎜🎜참고:🎜🎜
        🎜를 사용하세요. IDENTITY_INSERT 옵션으로 인해 기본 키 충돌이 발생할 수 있습니다. 🎜🎜소스 테이블과 대상 테이블에 호환 가능한 스키마가 있는지 확인하세요. 🎜🎜데이터 무결성을 보장하기 위해 삽입 프로세스를 모니터링하세요. 🎜🎜

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

    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿