프로그램에서 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}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1