[튜닝] common.php 에서 config 테이블 자주 읽지 않게 하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

[튜닝] common.php 에서 config 테이블 자주 읽지 않게 하기 정보

[튜닝] common.php 에서 config 테이블 자주 읽지 않게 하기

본문

작성: freeimage.kr 김성대 08.12.26
제목: [튜닝] common.php 에서 config 테이블 자주 읽지 않게 하기

원본: config.php 
 $config = sql_fetch(" select * from $g4[config_table] ");

개선:
$filename=$g4['path']."/../tmp/config.save";
if (time()-@filemtime($filename)>600) {
 $config = sql_fetch(" select * from $g4[config_table] ");
 file_put_contents($filename,serialize($config));
}
else {
 $config=unserialize(file_get_contents($filename));
}

원본: adm/config_form_update.php
goto_url("./config_form.php");

개선:
$filename=$g4['path']."/../tmp/config.save";
$config = sql_fetch(" select * from $g4[config_table] ");
file_put_contents($filename,serialize($config));
goto_url("./config_form.php");


설명: 임시파일에 config 내용을 저장한뒤 600초 미만이면 파일에서 읽고,
그 이상이면 테이블에서 읽어서 다시 저장한다.

보안:
  1.config.save를 웹에서 접속가능한 위치에 저장하며 안된다. (웹에서 다운가능)
  2. web 에서 쓰기가 가능해야 하므로 파일권한을  nobody 가 쓰기 가능하도록 해야한다.
  3. 파일명,위치는 공개하지 말라.

참고:
효과에 대해서는 아직 미확인임.. 트래픽을 유발시킨뒤 DB에서 읽는것이 빠른지 파일처리가 빠른지
비교해봐야 할것같음..
추천
0

댓글 3개

mysql db에서 설정을 읽으면 db 테이블에서 가져오는게 아니라
query cache의 값을 가져오게 됩니다.
따라서, 파일을 열어서 가지고 오는 것보다 더 효율적이라고 생각 됩니다.
제 경험으로 traffic이 많은 경우 최근글을 file로 cache하는 것도 비효율 입니다.
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT