> 백엔드 개발 > PHP 문제 > PHP로 대량의 데이터를 빠르게 가져오는 방법

PHP로 대량의 데이터를 빠르게 가져오는 방법

王林
풀어 주다: 2023-02-24 16:30:02
원래의
3476명이 탐색했습니다.

PHP로 대량의 데이터를 빠르게 가져오는 방법

PHP를 사용하여 대량의 데이터를 데이터베이스로 빠르게 가져오는 방법

첫 번째 방법: insert into를 사용하고 코드는 다음과 같습니다.

$params = array(‘value'=>'50′);

set_time_limit(0);

echo date(“H:i:s”);

for($i=0;$i<2000000;$i++){

$connect_mysql->insert($params);

};
echo date(“H:i:s”);
로그인 후 복사

마지막 표시: 23:25:05 01:32:05 또한 2시간 이상이 걸렸습니다!

두 번째 방법: 트랜잭션 제출을 사용하여 데이터베이스에 일괄 삽입합니다(100,000개 항목마다 제출). 최종 표시 시간은 22:56:13 23:입니다. 04:00, 총 8분 13초 동안 코드는 다음과 같습니다.

echo date(“H:i:s”);

$connect_mysql->query(‘BEGIN&#39;);

$params = array(‘value&#39;=>&#39;50′);

for($i=0;$i<2000000;$i++){

$connect_mysql->insert($params);

if($i%100000==0){

$connect_mysql->query(‘COMMIT&#39;);

$connect_mysql->query(‘BEGIN&#39;);

}

}

$connect_mysql->query(‘COMMIT&#39;);

echo date(“H:i:s”);
로그인 후 복사

세 번째 방법: 최적화된 SQL 문을 사용하여

SQL 문을 이어붙인 후 insert into table () values (),(),(),()를 사용하여 한꺼번에 삽입합니다. 문자열이 너무 길면 MYSQL을 구성해야 합니다.

mysql 명령줄에서 실행:

set global max_allowed_packet =  2*1024*1024*10;
로그인 후 복사

소요 시간: 11:24:06 11:25:06

삽입하는 데 1분 밖에 걸리지 않습니다. 200만 개의 테스트 데이터! 코드는 다음과 같습니다.

$sql= “insert into twenty_million (value) values”;

for($i=0;$i<2000000;$i++){

$sql.=”(&#39;50′),”;

};

$sql = substr($sql,0,strlen($sql)-1);

$connect_mysql->query($sql);
로그인 후 복사

요약: 첫 번째 방법은 대량의 데이터를 삽입할 때 확실히 최악인 반면, 두 번째 방법은 실제 응용 프로그램에서 더 널리 사용됩니다. 테스트 데이터나 기타 낮은 요구 사항을 삽입할 때 적합하며 정말 빠릅니다.

추천 튜토리얼: PHP 비디오 튜토리얼

위 내용은 PHP로 대량의 데이터를 빠르게 가져오는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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