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

2014-02-14 (금) 11:58:52 8,447
특성상 다수 회원에게 포인트를 일괄 적립 할 경우가 자주 있습니다.
이럴때 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개

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

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