![How Can I Efficiently Update 120 Million Database Records Without Using an Update Statement?](https://img.php.cn/upload/article/000/000/000/173566285350429.jpg)
비업데이트 방식을 사용하여 1억 2천만 개의 레코드를 효율적으로 업데이트
1억 2천만 개의 레코드가 포함된 방대한 테이블을 업데이트하는 성능을 향상시키기 위해 비업데이트 방식을 채택하는 것이 필수적입니다. 이 기술에는 SELECT 문을 활용하여 필요한 수정 사항으로 두 번째 테이블을 채우는 작업이 포함됩니다.
구현:
- 두 번째 테이블을 저장할 별도의 스키마를 생성합니다. 클러스터형 인덱스, ID 열, 계산 열 및 새 INT 열이 포함되어 있는지 확인합니다. 이 생성 프로세스 중에 트리거, 외래 키 제약 조건 및 비클러스터형 인덱스를 제외합니다.
- 1000개 행을 사용하여 테스트 삽입을 수행하여 기능과 데이터 정확성을 검증합니다.
- 두 번째 테이블을 자르고 시작합니다. 전체 삽입.
- 클러스터되지 않은 모든 기본 키/고유 제약 조건/인덱스, 외래 키를 재구성합니다. 제약 조건, 기본 제약 조건, 검사 제약 조건을 별도의 배치로 처리합니다.
- 원래 테이블을 백업 스키마로 전송하고 두 번째 테이블을 기본 스키마로 전송합니다.
- 트리거를 활용하여 모든 DML을 백업 스키마에 기록합니다. 잠재적인 트루업을 위해 스키마 전송 프로세스 중 원본 테이블
이점:
이 비업데이트 접근 방식은 기존 업데이트 방법에 비해 상당한 이점을 제공합니다. 장기간의 비효율적인 업데이트 프로세스를 제거하여 더 빠르고 안정적인 데이터 수정 환경을 보장합니다.
추가 고려 사항:
- 이 접근 방식은 오프라인 작업에 이상적입니다. 실시간 시스템 업데이트 중 잠재적인 데이터 무결성 문제를 최소화하세요.
- 대규모 데이터 세트의 경우 대량 로그 또는 단순 복구 모델을 구현하여 최적화하는 것을 고려하세요.
- 성공적이고 정확한 결과를 얻으려면 수정을 시도하기 전에 요구 사항과 데이터 구조를 주의 깊게 검토하세요.
위 내용은 업데이트 문을 사용하지 않고 1억 2천만 개의 데이터베이스 레코드를 효율적으로 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!