> 백엔드 개발 > PHP 튜토리얼 > PHP를 사용하여 MySQLi에 많은 행을 효율적이고 안전하게 삽입하려면 어떻게 해야 합니까?

PHP를 사용하여 MySQLi에 많은 행을 효율적이고 안전하게 삽입하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-12-13 18:08:11
원래의
728명이 탐색했습니다.

How Can I Efficiently and Securely Insert Many Rows into MySQLi Using PHP?

MySQLi의 효율적이고 안전한 다중 행 삽입

PHP 개발 시 MySQL 데이터베이스에 수많은 행을 효율적이고 안전하게 삽입하는 것은 도전. 이 문제를 해결하려면 성능을 유지하면서 SQL 삽입을 방지하는 기술을 사용하는 것이 중요합니다.

일반적인 접근 방식 중 하나는 매개변수 바인딩과 함께 준비된 문을 사용하는 것입니다. 그러나 많은 행(예: 2000)을 삽입해야 하는 경우 이 접근 방식은 속도가 느릴 수 있습니다.

더 효율적인 솔루션은 데이터베이스 트랜잭션을 활용하는 것입니다. 트랜잭션을 사용하면 여러 작업을 그룹화하여 단일 원자 단위로 실행할 수 있습니다. 트랜잭션을 시작하면 준비된 단일 문을 사용하여 여러 행을 삽입할 수 있으므로 별도의 삽입 실행과 관련된 오버헤드가 줄어듭니다.

이를 설명하기 위해 다음은 최적화된 코드 조각입니다.

$array = array("array", "with", "about", "2000", "values");
$query = "INSERT INTO table (link) VALUES (?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $one);

$mysqli->query("START TRANSACTION");
foreach ($array as $one) {
    $stmt->execute();
}
$stmt->close();
$mysqli->query("COMMIT");
로그인 후 복사

이 코드는 트랜잭션을 초기화하고, insert 문을 준비하고, 매개변수를 바인딩합니다. 그런 다음 값 배열을 반복하여 트랜잭션 내의 각 값에 대해 insert 문을 실행합니다. 마지막으로 트랜잭션을 커밋하여 모든 삽입을 마무리합니다.

원래 방법과 비교하여 이 접근 방식은 성능을 크게 향상시킵니다. 10,000회 반복 테스트에서 트랜잭션 기반 삽입에는 단 2초가 걸렸지만 원래 접근 방식은 226초가 걸렸습니다. 속도가 2배나 엄청나게 빨라졌습니다.

트랜잭션과 준비된 명령문을 활용하면 PHP의 MySQL 데이터베이스에 여러 행을 효율적이고 안전하게 삽입하여 데이터 무결성과 성능 최적화를 모두 보장할 수 있습니다.

위 내용은 PHP를 사용하여 MySQLi에 많은 행을 효율적이고 안전하게 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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