현재 위치: > 최신 기사 목록> PHP 성능 최적화 및 튜닝 기술 : 웹 애플리케이션의 속도와 안정성 향상

PHP 성능 최적화 및 튜닝 기술 : 웹 애플리케이션의 속도와 안정성 향상

M66 2025-06-12

캐시를 사용하여 성능을 향상시킵니다

웹 애플리케이션 개발에서 캐싱은 일반적이고 효율적인 성능 최적화 방법입니다. 캐싱을 통해 데이터베이스 액세스 수를 크게 줄여서 응용 프로그램의 응답 속도를 높일 수 있습니다.

PHP에는 APC 캐싱과 같은 여러 캐싱 기능이 내장되어 있습니다. PHP의 내장 함수`apc_add ()`및`apc_fetch ()`을 사용하여 간단한 캐싱 메커니즘을 구현할 수 있습니다. 다음은 기본 예입니다.

<?php
// 캐시 키 이름
$key = 'my_cache_key';
// 캐시에서 데이터를 얻으십시오
$data = apc_fetch($key);
if ($data === false) {
    // 캐시에는 데이터가 존재하지 않습니다,데이터베이스 쿼리 및 기타 작업을 수행하십시오
    // ...
    // 캐시에 결과를 저장합니다
    apc_add($key, $data, 60); // 데이터 유효성 기간은 다음과 같습니다60두번째
}
// 사용$data
// ...
?>

중복 데이터베이스 쿼리를 피하십시오

실제 개발에서 동일한 데이터베이스 쿼리가 여러 번 실행되어 불필요한 성능 폐기물이 발생할 수 있습니다. 중복 쿼리를 피하기 위해 정적 변수 또는 글로벌 변수를 사용하여 쿼리 결과를 캐시 할 수 있습니다. 예는 다음과 같습니다.

<?php
function get_user_count() {
    static $count = null;
    if ($count === null) {
        // 데이터베이스 쿼리를 수행하십시오
        // ...
        $count = // 쿼리 결과;
    }
    return $count;
}
?>

파일을 병합하고 리소스를 압축하십시오

HTTP 요청 수를 줄이는 것은 웹 성능을 향상시키기위한 주요 조치 중 하나입니다. 여러 CSS 및 JS 파일을 하나의 파일로 결합하고 압축 도구를 사용하여 파일 크기를 줄임으로써 페이지 로딩 시간을 효과적으로 줄일 수 있습니다.

<?php
function compress_css($files, $output_file) {
    $content = '';
    foreach ($files as $file) {
        $content .= file_get_contents($file);
    }
    // 주석을 삭제하십시오
    $content = preg_replace('!/\*[^*]*\*/!', '', $content);
    // 공간과 들여 쓰기를 삭제하십시오
    $content = str_replace(["\n", "\r", "\t", '  ', '    '], '', $content);
    file_put_contents($output_file, $content);
}
?>

쿼리 캐시 사용

자주 실행되는 동일한 데이터베이스 쿼리의 경우 데이터베이스의 쿼리 캐싱 기능을 사용하여 동일한 쿼리의 반복 실행을 피할 수 있습니다. MySQL은`SQL_CACHE '기능을 제공하여 쿼리 프로세스 속도를 높일 수 있습니다.

<?php
$sql = "SELECT SQL_CACHE * FROM my_table WHERE ...";
?>

데이터베이스 작업을 최적화합니다

데이터베이스 작업의 최적화는 웹 응용 프로그램의 성능을 향상시키는 데 중요한 부분입니다. 데이터베이스 인덱싱, 배치 삽입 및 배치 업데이트와 같은 기술을 사용하면 데이터베이스 운영 효율성을 크게 향상시킬 수 있습니다.

<?php
// 사용索引
$sql = "SELECT * FROM my_table WHERE id = :id";
$stmt = $pdo->준비 ($ SQL);
$ stmt-> bindparam ( &#39;: id&#39;, $ id, pdo :: param_int);
$ stmt-> execute ();

// 배치 삽입 $ sql = "my_table (id, name) 값에 삽입 (: id, : name)";
$ stmt = $ pdo-> 준비 ($ sql);
foreach ($ data as $ row) {
    $ stmt-> bindparam ( &#39;: id&#39;, $ row [ &#39;id&#39;], pdo :: param_int);
    $ stmt-> bindparam ( &#39;: name&#39;, $ row [ &#39;name&#39;], pdo :: param_str);
    $ stmt-> execute ();
}

// 배치 업데이트 $ sql = "업데이트 my_table set name = : name where id = : id";
$ stmt = $ pdo-> 준비 ($ sql);
foreach ($ data as $ row) {
    $ stmt-> bindparam ( &#39;: id&#39;, $ row [ &#39;id&#39;], pdo :: param_int);
    $ stmt-> bindparam ( &#39;: name&#39;, $ row [ &#39;name&#39;], pdo :: param_str);
    $ stmt-> execute ();
}
?>

요약

PHP 캐시를 사용하여 합리적으로 웹 애플리케이션의 성능을 크게 향상시키고, 중복 쿼리를 줄이고, 리소스 파일을 병합하고, 쿼리 캐싱을 가능하게하며, 데이터베이스 작업을 최적화 할 수 있습니다. 이 기사에 제공된 샘플 코드는 개발자에게 더 빠르고 안정적인 웹 애플리케이션을 달성하는 데 도움이되는 실행 가능한 최적화 전략을 제공합니다.