집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 애플리케이션에서 일반적으로 사용되는 최적화
커넥션 풀 사용
데이터베이스에 접근하기 위해서는 커넥션을 설정하는 데 비용이 상대적으로 많이 듭니다. 따라서 접근 성능을 향상시키기 위해서는 "커넥션 풀"을 구축하는 것이 필요합니다. 연결을 개체 또는 장치로 처리할 수 있습니다. 풀에는 원래 데이터베이스에 대한 연결이 필요한 액세스 장소가 대신 풀에 연결됩니다. 결과가 반환된 후 액세스합니다. 다시 연결.
Mysql에 대한 액세스 줄이기
동일한 데이터의 반복 검색 방지:
애플리케이션은 데이터베이스에 대한 액세스 논리를 명확히 하고 동일한 테이블에 액세스해야 합니다. 결과를 한 번에 확인하고, 데이터베이스에 대한 반복적인 접근을 줄입니다.
mysql 쿼리 캐시 사용:
기능: 쿼리 캐시는 SELECT 쿼리의 텍스트와 클라이언트로 전송된 해당 결과를 저장합니다. 이후에 동일한 쿼리가 수신되면 서버는 쿼리를 구문 분석하고 실행하지 않고 쿼리 캐시에서 쿼리 결과를 검색합니다.
적용 범위: 데이터 업데이트가 발생하지 않는 테이블. 테이블이 변경되면(테이블 구조 및 테이블 데이터 포함) 쿼리 캐시 값의 관련 항목이 지워집니다.
쿼리 캐시의 주요 매개변수 설정:
'%query_cache%'와 같은 변수 표시;
have_query_cache는 설치 중에 서버가 캐시로 구성되었음을 나타냅니다.
query_cache_size는 쿼리 캐시 영역의 크기를 나타냅니다. M
query_cache_type의 변수 값은 0에서 2까지이며, 각각
0 또는 off(캐시 꺼짐)
1 또는 on(캐시 켜짐, sql_no_cache를 사용한 선택 제외)
2 또는 수요( sql_cache select 문으로만 캐시 제공)
SHOW STATUS에서 쿼리 캐시의 성능을 모니터링할 수 있습니다.
변수 의미
Qcache_queries_in_cache 캐시에 등록된 쿼리 수
Qcache_inserts 쿼리에 추가됨 캐시 번호
Qcache_hits 캐시 샘플 수
Qcache_lowmem_prunes 메모리 부족으로 인해 캐시에서 제거된 쿼리 수
Qcache_not_cached 캐시되지 않은 쿼리 수(캐시할 수 없거나
로 인해) QUERY_CACHE_TYPE)
Qcache_free_memory 캐시에 있는 총 여유 메모리 수를 쿼리
Qcache_free_blocks 캐시에 있는 여유 메모리 블록 수를 쿼리
Qcache_total_blocks 캐시에 있는 총 블록 수를 쿼리
캐시 레이어 추가:
캐시(cache), 메모리(Memory), 하드디스크(hard disk)는 모두 데이터 접근 단위이지만, 접근 속도는 내림차순으로 매우 다릅니다. CPU의 경우 몇 배나 낮은 속도로 메모리와 하드 디스크의 데이터에 액세스하는 대신 가장 가까운 캐시에서 고속으로 데이터에 액세스할 수 있습니다. 캐시에 저장된 데이터는 CPU가 반복적으로 액세스해야 하는 데이터인 경우가 많습니다. 캐시에 있는 데이터의 적중률(Hit Rate)을 보장하는 특정 메커니즘(또는 프로그램)이 있습니다. 따라서 캐시를 적용한 후 CPU가 데이터에 액세스하는 속도가 크게 향상됩니다.
캐시 관리자는 캐시에 데이터를 쓰는 역할을 담당하므로 캐시 콘텐츠는 사용자에게 읽기 전용이어야 합니다. 프로그램에 포함된 SQL 문은 DBMS에 직접 접근할 때와 다르지 않으며, 반환되는 결과에도 차이가 없습니다. 데이터베이스 공급업체는 DB 서버 구성 파일에 캐시 관련 매개변수를 제공하는 경우가 많습니다. 이를 수정하면 캐시 관리가 우리 애플리케이션에 최적화될 수 있습니다.
더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!