그누보드 7만개 update 쿼리 날리는데 .. 7만개면 쿼리 안들어가나요?
데이터가 약 7만개 됩니다.
반복문으로 update 약 7만개 날립니다.
소스등 문제 없는게 확인했는데..
echo 로 각각 들어가는 데이터 값 별도로 찍으면 정상으로 나옵니다.
데이터가 DB에 특정 필드에 업데이트가 안되네요
그누보드 5.5버전대 사용중이고
PHP 7.4 사용중
MYsql 7 사용중입니다.
왜 그럴가요? ㅠㅠ 혹시 아시는분.. 있으실가요?
업데이트 소스코드
echo $val['wr_id'] . "<br>";
echo "tree_data:".$tree_data."<br>";
echo "level:".$level."<br>";
$sql = " update g5_write_plan_a set wr_9 = '$level' where wr_id = '$val[wr_id]' ";
sql_query($sql);
결과값
1
tree_data:67811
level:15
답변 7개
7만개면 웹서버 timeout 날수도 있겠네요.
timeout 문제같네요.
Copy
$sql = " update g5_write_plan_a set wr_9 = '{$level}' where wr_id = '{$val['wr_id']}' ";
sql_query($sql);
코드 수정후 다시 실행해보세요.
php 7.x 이면 스트링 내부에 $val[wr_id] 처럼 변수 넣을수 없습니다.
아마 오류나 경고 문구가 나올텐데,, display_errors 를 껴두신거 같네요. 켜보시면 에러가 명확하게 표시될겁니다.
디비와 php실행이 무작정 계속실행되는 것이 아니고 일정시간이 경과하면 실행이 멈추게 설정되어있습니다
7만건이면 당연히 질문처럼하면 안될 것입니다
하나씩 처리할때다 내용을 출력하는 것도 브라우저가 버벅이는 등 문제가 생길 것입니다
Ajax로 실행되게 만들고 페이지처리처럼 나누어 처리하는 방법으로 해보세요
서버 성능이나 기타 이유들로 처리할 양이 많으면 안될 수 있습니다. 한번에 안되시면 플라이님 말씀 처럼 나눠서 등록을 하셔야 할거 같습니다.
한번에 다 등록하지 마시고 중간중간 딜레이를 주며 등록시켜보세요
Db서버에 등록 제한이 있다보니 7만개를 한번에 등록시 제대로 안될수도 있습니다.
답변을 작성하려면 로그인이 필요합니다.