테스트 사이트 - 개발 중인 베타 버전입니다

다수회원의 포인트를 관리할때 포인트함수 insert_point()가 느려서...

바람돌이7711 11년 전 조회 8,208
특성상 다수 회원에게 포인트를 일괄 적립 할 경우가 자주 있습니다.
이럴때 for루프로 insert_point()를 계속 돌리다 보니..  1000명만 해도 2분이 넘어가네요. ㅡ.ㅡ
해서 insert_point() 함수내 에서 아래처럼 바꿔도 괜찮을까요?   
--------------------------------
    // 포인트 내역의 합을 구하고
    $sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
    $row = sql_fetch($sql);
    $sum_point = $row[sum_po_point];
    // 포인트 UPDATE
    $sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
    sql_query($sql);
--------------------------------
위처럼 되어 있는 로직을 
--------------------------------
 // 포인트 내역의 합을 구하고
 //   $sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
 //   $row = sql_fetch($sql);
 //   $sum_point = $row[sum_po_point];
위에는 주석처리
    
 // 포인트 UPDATE - 수정
$sql = " update $g4[member_table] set mb_point = mb_point + $point where mb_id = '$mb_id' ";
sql_query($sql);
--------------------------------
$point 는 넘어온 포인트값입니다.
댓글을 작성하려면 로그인이 필요합니다.

답변 1개

8년 전

먼저 포인트를 줄 아이디 목록을 뽑아오고 나서 포인트를 대입하는 것이 좋습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인