sub_title
 PHP
제   목 PHP Caching to speed up
작성자 컴퓨터존 등록일 2008-05-02 12:40:48 조회수 7,956

PHP Caching to speed up

PHP와 SQL서버를 이용한 웹응용프로그램에경우, 가장 고려하는 부분은 쿼리문이겠지요. 접속자와 Speed관계에서, 하드웨어적인 한계속엔 소프트웨어의 처리가 있겠습니다.

일반적으로 대규모 트래픽이 발생하는경우는 페이지에서 다이렉트로 쿼리문을 통해 데이터를 뽑아오지않습니다. 그래픽으로 설명드리고싶지만, 그래픽툴이 없는관계로 간략하게 묘사해보면,

WebClient --->  WebServer ---> SQLServer  (아래로)
WebClient    <----  WebServer Return  <--- SQLServer Return

위와같이, Webserver에서 php파서와같이 코드를 해석한후 SQLServer로 데이터를 요청하고, 정렬하여 html포맷으로 웹클라이언트에게 응답해줍니다.
구현목적에 따라 달라지겠지만, 게시판과같이 실시간으로 출력해줘야하는 형태가 아니라면 비효율적일수있겠죠.

이에, 아래와같이 동적처리를마친 파일을 cache 저장합니다.
5분간은 접속자가 몇명이든지간에, SQL에게 데이터를 묻지않고도 php와 협력하여 파싱을 하지않고도 웹서버는 그냥 캐싱된파일을 읽어와 출력해주면 되겠죠.
서버부하와 속도는 당연히 빨라질것입니다.

쉽게 말하면, 파일로 저장해두고 5분에 한번 갱신해주는겁니다.
1분 접속자가 1천명이라치면  5천번의 이벤트가 1번으로 주는거겠죠. 

(?

   $reqfilename = "index";
   $cachefile = "cache/".$reqfilename.".xanadu";
   $cachetime = 5 * 60; //5 minutes
   // Serve from the cache if it is younger than $cachetime
   if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) {
     include($cachefile);
     echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." -->\n";
     exit;
   }

 
   // start the output buffer
   ob_start();
?)
 

Here is Page-Content home
 
(?
   $fp = fopen($cachefile, 'w'); // open the cache file for writing
   fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file
   fclose($fp); // close the file
 
   // Send the output to the browser
   ob_end_flush();
?)

출처 : [기타] reference : www.developertutorials.com

 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
30  PHP 함수 간단 정리   member 웹스톤 0 / 0 8308 2008-08-14
29  PHP 메일(mail) 함수를 이용한 첨부화일 전송하기 첨부파일   admin 웹마당넷 3 / 1 28211 2008-08-02
28  PHP 파일 업로드 보안   member 사라마음 0 / 0 8358 2008-08-02
27  PHP - 파일첨부가 가능한 폼메일러 LeoFormMailer 첨부파일   member 웹스톤 0 / 0 9410 2008-08-01
26  PHP - RSS 리더기   member 파도 0 / 1 8151 2008-07-29
25  PHP 숫자 천자리마다 콤마(쉼표) 찍기   member 높이뜬새 2 / 2 20084 2008-07-29
24  PHP 문자열 연결하기   member 높이뜬새 0 / 0 9404 2008-07-25
23  무조건 알아야 할 PHP 속도 테스트 14 가지   member 웹스톤 1 / 0 20634 2008-06-16
22  PHP 문자열중 숫자만 추출하기   member 높이뜬새 0 / 0 10291 2008-05-19
21  [설치/설정] 대용량 업로드...   member 컴퓨터존 0 / 0 7070 2008-05-02
20  [PHP] post, get, cookie, session 변수 확인   member 컴퓨터존 0 / 0 9828 2008-05-02
19  PHP Caching to speed up   member 컴퓨터존 0 / 0 7956 2008-05-02
18  PHP 현재 접속자 현황 보여주기   member 컴퓨터존 0 / 0 9246 2008-04-08
17  PHP 한글 레퍼런스   member 컴퓨터존 0 / 0 8573 2008-04-05
16  Flex와 PHP를 이용해서 만든 파일업로드 소스   member 오렌지 0 / 0 9101 2007-11-28
15  프레임(frame) 새로고침 할때 페이지 유지하기   member 웹스톤 0 / 0 10404 2007-11-15
14  [설치/설정] 대용량 업로드...   member 웹스톤 0 / 0 7553 2007-11-15
13  PHP에서 성능 개선을 위한 유용한 팁   member 웹스톤 0 / 0 10059 2007-11-15
12  PHP 버블소트 알고리즘   member 웹스톤 0 / 0 7114 2007-11-14
11  Oracle/PHP 환경의 트랜잭션 관리 이미지   member 웹돌이 0 / 0 45900 2007-10-09
10  FTP 서버 설치 및 관리   member 웹돌이 0 / 0 10030 2007-10-09
9  리눅스 ftp 명령어 모음   member 웹돌이 0 / 0 8002 2007-10-09
8  게시판검색이나 쇼핑몰에 유용한 자바스크립트   member 웹돌이 0 / 0 8245 2007-10-09
7  변수속도 테스트   member 웹돌이 0 / 0 6990 2007-10-09
6  PHP에서 접속자 IP 알아내기   member 높이뜬새 0 / 0 11208 2007-09-08
write
button [1] [2] [4] button