14.18.1 InnoDB 및 memcached 조합의 장점
이 섹션에서는 섹션 14.18 "InnoDB 및 memcached의 통합」 에서 도입 된 InnoDB
테이블에 memcached 인터페이스의 장점에 대해 설명합니다. InnoDB
테이블과 memcached를 결합하여 하나를 단독으로 사용한 경우에 비해 이점을 얻을 수 있습니다.
InnoDB
스토리지 엔진에 직접 액세스하여 SQL 구문 분석 및 계획의 오버 헤드를 피할 수 있습니다.memcached를 MySQL Server와 같은 프로세스 공간에서 실행하여 요청을 전달하는 데 따른 네트워크 오버 헤드를 방지 할 수 있습니다.
memcached 프로토콜을 사용하여 기록 된 데이터는 투명하게
InnoDB
테이블에 기록되고 MySQL SQL 레이어를 통과하지 않습니다. 쓰기의 빈도를 제어함으로써 중요하지 않은 데이터를 업데이트 할 때 본래의 성능을 향상시킬 수 있습니다.memcached 프로토콜을 통해 요청 된 데이터는 투명하게
InnoDB
테이블에서 조회하고 MySQL SQL 레이어를 통과하지 않습니다.동일한 데이터에 대한 후속 요청은
InnoDB
버퍼 풀에서 제공됩니다. 버퍼 풀은 인 메모리 캐시를 처리합니다. 익숙한InnoDB
구성 옵션을 사용하여 대량의 데이터를 처리하는 작업의 성능을 조정할 수 있습니다.응용 프로그램의 유형에 따라 비정형 데이터 또는 구조화 된 데이터를 사용할 수 있습니다. 데이터에 전혀 새로운 테이블을 만들거나 하나 이상의 기존 테이블에 NoSQL 스타일의 처리를 매핑 할 수 있습니다.
InnoDB
는 여러 컬럼의 값을 단일 memcached 항목 값에 연결하거나 분해 할 수 있기 때문에 응용 프로그램에 필요한 문자열의 구문 해석 및 연결의 양을 줄일 수 있습니다. 예를 들어, 문자열 값2|4|6|8
이 memcached 캐시에 저장되어있는 경우,InnoDB
는 그 값을 구분자에 따라 분할하고 그 결과를 4 개의 숫자 컬럼에 저장합니다.메모리와 디스크 사이의 전송은 자동으로 처리되기 때문에 응용 프로그램 논리가 단순화됩니다.
데이터는 MySQL 데이터베이스에 저장되는 것으로, 크래쉬, 기능 정지 및 손상으로부터 보호됩니다.
보고, 분석, 임시 쿼리 일괄로드 다단계 트랜잭션 계산 논리합과 논리 곱 등의 set 조작 및 SQL의 표현과 유연성에 적합한 다른 작업을 위해 계속 SQL을 통해 기본 테이블에 액세스 할 수 있습니다.
이 기능을 MySQL 복제와 함께 마스터 서버 에서 사용하면 NoSQL 데이터의 고 가용성을 보장 할 수 있습니다.
memcached와 MySQL을 통합함으로써 번거 로움없이 인 메모리 데이터를 영구적으로 할 수 있고이를 매우 많은 종류의 데이터에 사용할 수 있습니다. 데이터가 바로 삭제 될 염려가없고, 더
add
,incr
및 유사 쓰기 작업을 응용 프로그램에 배치 할 수 있습니다. 캐시 된 데이터에 대한 업데이트를 잃지 않고 memcached 서버를 중지 및 시작할 수 있습니다. 예기치 않은 중단을 방지하기 위해InnoDB
의 충돌 복구 절차 복제 절차 및 백업 절차를 사용할 수 있습니다.InnoDB
가 빠른 기본 키 검색을 실행하는 방법은 일반적 memcached의 단일 항목 쿼리에 적합합니다. memcached 플러그인에 의해 사용되는 낮은 수준의 직접적인 데이터베이스 액세스 경로는 키 / 값의 검색에서는 동일한 SQL 쿼리보다 훨씬 효율적입니다.복잡한 데이터 구조, 이진 파일 또는 코드 블록을 저장할 수있는 문자열로 변환 할 수 memcached의 직렬화 기능을 통해 이러한 개체를 데이터베이스에 저장하는 간단한 방법이 제공됩니다.
기초 데이터에 SQL을 통해 액세스 할 수 있기 때문에 memcached 데이터에 대한 보고서를 생성하거나 여러 키 검색 또는 업데이트하거나
AVG()
와MAX()
등의 함수를 호출 할 수 있습니다. 이러한 모든 작업은 독립형 memcached는 비용이 소요되고 복잡하게되기도합니다.시작할 때 memcached에 데이터를 수동으로로드 할 필요가 없습니다. 응용 프로그램에서 특정 키가 요청되면 값은 데이터베이스에서 자동으로 검색되고
InnoDB
버퍼 풀 을 사용하여 메모리에 캐시됩니다.memcached는 CPU의 소비가 비교적 적고, 메모리 풋 프린트를 관리하기 쉽기 때문에 동일한 시스템에서 MySQL 인스턴스와 함께 편안하게 할 수 있습니다.
일반
InnoDB
테이블에서 사용되는 메커니즘을 통해 데이터 무결성이 강제되기 때문에 오래된 memcached 데이터와 키가 없으면 데이터베이스에 쿼리를 실행하는 대체 논리에 대해 우려 할 필요가 없습니다.