웹 애플리케이션 개발에서 캐싱은 일반적이고 효율적인 성능 최적화 방법입니다. 캐싱을 통해 데이터베이스 액세스 수를 크게 줄여서 응용 프로그램의 응답 속도를 높일 수 있습니다.
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 ( ': id', $ id, pdo :: param_int); $ stmt-> execute (); // 배치 삽입 $ sql = "my_table (id, name) 값에 삽입 (: id, : name)"; $ stmt = $ pdo-> 준비 ($ sql); foreach ($ data as $ row) { $ stmt-> bindparam ( ': id', $ row [ 'id'], pdo :: param_int); $ stmt-> bindparam ( ': name', $ row [ 'name'], pdo :: param_str); $ stmt-> execute (); } // 배치 업데이트 $ sql = "업데이트 my_table set name = : name where id = : id"; $ stmt = $ pdo-> 준비 ($ sql); foreach ($ data as $ row) { $ stmt-> bindparam ( ': id', $ row [ 'id'], pdo :: param_int); $ stmt-> bindparam ( ': name', $ row [ 'name'], pdo :: param_str); $ stmt-> execute (); } ?>
PHP 캐시를 사용하여 합리적으로 웹 애플리케이션의 성능을 크게 향상시키고, 중복 쿼리를 줄이고, 리소스 파일을 병합하고, 쿼리 캐싱을 가능하게하며, 데이터베이스 작업을 최적화 할 수 있습니다. 이 기사에 제공된 샘플 코드는 개발자에게 더 빠르고 안정적인 웹 애플리케이션을 달성하는 데 도움이되는 실행 가능한 최적화 전략을 제공합니다.