이 블로그 게시물 은 Magento와 다른 세션 스토리지 엔진의 성능 비교 결과를 보여 주며 최대 75 명의 동시 사용자가 실제로 성능 차이가 없다고 결론 지은 것 같습니다.
나는이 수준 (초당 약 5 건의 트랜잭션, 12 시간 동안 약 430k 히트)을 가지고 있다고 생각합니다. 파일 / DB / Memcache / Redis가 모두 행복하게 처리하기 때문에 다른 모든 것의 오버 헤드가 성능 수치를 지배합니다. 제대로 사용하면 땀을 흘리지 않고 교통.
따라서 확장 성, 안정성 및 보안과 같은 다른 요소가 남습니다.
먼저 파일 저장소를 손상시키는 것은 공격자가 응용 프로그램 코드를 수정하거나 키 및 저장소 액세스 프로토콜 / 자격 증명이 읽기 전용 인 경우에도 발견 할 수 있기 때문에 다른 모든 것을 손상시킬 가능성이 있다고 말하고 싶습니다. 접속하다. 파일 저장소는 볼륨이 적은 사이트에 적합하며 설정이 쉽고 추론하기 쉽습니다. 디스크를 누르는 것처럼 DB 읽기도 디스크를 치고 DB가이를 캐시 할 수 있으면 OS도 세션 파일을 캐시했을 것입니다. 또한 하나의 파일을 읽었으며 파일 이름이 이미 알고 있으면 파일 시스템이 훌륭합니다. PHP를 사용하는 경우 응용 프로그램을 제공하기 위해 시스템이 얼마나 많은 파일 읽기를해야하는지 알고 있습니까? 단점은 당신이 할 수 있다는 것입니다.
Memcache는 비교적 빠르며 Memcache 클래스 솔루션을 더 광범위하게 고려하고 있다면 (Redis 등) 속도에 대한 메모리 읽기에서 지속성을 약속하여 두 세계를 최대한 활용할 수있는 솔루션이 있습니다. 또한 추론하기가 비교적 간단하며 세션의 키-값 특성은 정확히 설계된 것입니다. 이 중 하나를 채우기 위해 얼마나 많은 세션에 참여해야하는지 알고 있습니까? 어쨌든 모든 옵션은 용량에 도달하면 타협해야합니다. 디스크는 파일 (여기서 숫자 및 크기 요소)로 채워지고, 캐시 저장소는 용량으로 채워지고 데이터베이스에는 파일 수와 동일한 행 수와 동일한 디스크 용량 제한이 있습니다. 또한 이러한 시스템은 분산 방식으로 실행하는 경우에만 분산됩니다. 단일 서버 설정으로 대부분 잘 작동합니다. 배포하는 경우 이미 분산 웹 서버 / 데이터베이스 서버 등이 있으므로 분산 시스템 문제가 세션 저장소 선택에서 확실히 나타나지 않습니다. 그러나 10 배의 트래픽 / 용량 등을 원할 때 파일 저장 방식보다 훨씬 자연 스럽습니다. 일부 키 / 값 저장소를 사용하면 세션 데이터를 비교적 쉽게 분석 할 수 있지만 대부분 SQL을 수행 할 수있는 곳은 없습니다.
데이터베이스가 다른 옵션보다 더 신뢰할 수 있다고 제안하는 이유는 확실하지 않지만 PHP 응용 프로그램이 이미 데이터베이스를 사용하고 있기 때문에 데이터베이스의 호소력을 얻습니다. 즉, 다른 서버 종속성을 추가하지 않고 세션 데이터를 가져와 사용자 데이터를 가져 오기 위해 사용하는 것과 동일한 연결을 재사용 할 수 있으므로 데이터, Memcache 등을 설정할 필요가 없습니다. 테이블을 잘 작성하면 상당히 빠른 성능을 발휘하며 이전 세션을 거두거나 세션 데이터를 분석하는 데 이미 익숙한 매우 간단한 의미를 제공합니다 (왜 내가 원하는지 확실하지 않은 경우 확실하지 않습니다) 중요하지 않습니다). 대규모로 확장하는 것은 Redis와 같이 사소한 것이 아닙니다.
처음에는이 선택이 그렇게 중요하지 않다고 생각합니다. 각 접근 방식에는 도전 과제와 장점 및 고려해야 할 사항이 있습니다. 일반적으로 말하자면, 기본 PHP / 사용하는 프레임 워크 또는 가장 쉬운 방법을 사용하여 벗어날 수 있습니다. 나중에 선택이 잘못되면 성능 분석에서 알려주고 트래픽의 특정 특성에 따라 적절한 선택을 수행하는 데 필요한 데이터로 무장합니다. 우선, 당신이 합리적으로 가질 수있는 것은 일반적인 추측입니다.