프로그램에서 DB 사용시 주의점 (php)

  1. 쿼리 호출을 최소화 한다.
    1. select/update/delete 쿼리를 한번에 동작하도록 한다
      1. row별로 건건히 쿼리를 동작시키는 경우를 피하라. xN번 동작하는 경우가 생긴다.
    2. 프로그램 쪽에서 loop 를 최소화 하도록 한다.
      1. loop 잘못하면 xN 번 쿼리가 돌아간다.
    3. 하지만 쿼리 하나에 대량의 row가 수정되는 경우 transaction 이슈가 발생 될 수 있으므로, 동작 수에 대해서 limit 하라!
  2. 메모리 누수를 주의한다.
    1. 특정 수만 큼만 loop 돌던지
    2. 누수 부분 찾아서 unset 하던지
    3. 아니면 무제한으로 메모리를 먹어서 oom-killer에게 죽임을 당할것이다.
  3. select 쿼리의 내용을 한번에 가져와서 루프 돌리는 것이 빠르다
    1. select 쿼리 결과를 배열에 담아서 돌리는 것이 쿼리 결과를 한껀씩 fetch 해서 동작 시키는 것 보다 빠르다!
  4. 주요 루프 처리에 set_time_limit(60); 정도로 설정하라.
    1. set_time_limit(0) 처럼 하면 무슨 문제가 생길경우, 끝없이 동작할 수 있다.
    2. 루프에 set_time_limit(60);로 제한을 줘서, 그 루프마다 60초안에 안 끝나면 장애로 보고 시간을 늘리든, 60초안에 동작하도록 하든 개선이 필요하다.
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자