2013-05-14 2 views
1

PHP 세션에서 큰 배열을 서버에 저장하는 것이 어려울까요? "커다란"배열은 각 요소가 최대 100 개의 필드를 가진 500 개의 요소를 가진 배열을 의미합니다.PHP 세션에서 배열 저장

수천 명의 사용자가이 프로세스를 여러 번 수행 할 수 있습니다.

+0

예, 그렇습니다. 배열에 뭐가 들어 있니? JavaScript 기반 localStorage를 사용하여 문제를 해결할 수 있습니다. – Blazemonger

+0

나는 세션 데이터를 파일에 저장하는지 데이터베이스에 저장하는지에 따라 달라질 수 있습니다. – Wiktor

+0

이것은 서버 구성에 따라 다릅니다. 세션은 RAM과 HDD에 저장되며 매우 자주 액세스하는 경우 비효율적입니다. 쿠키 또는 데이터베이스를 사용하십시오. – tobspr

답변

3

첫째, PHP의 세션 처리에 대한 간략한 소개 :

세션을 열 때 쿠키가 세션의 ID를 포함하고 클라이언트로 전송되는 생성됩니다. PHP는 session.save_path에 정의 된 경로를 사용하여 id를 파일 이름 (reference)으로 사용하여 파일을 저장합니다.

귀하의 사례에서 그 의미는 무엇입니까? 파일을 항상 읽고 쓸 수 있기 때문에 추가 병목 현상 (디스크 I/O가 대부분의 설정에서 가장 느린 작업 중 하나임)을 의미합니다.

데이터베이스 서버에는 이러한 종류의 대기 시간을 처리 할 수있는 많은 코드가 있으므로 $_SESSION에 ID가 입력되어 직렬화 된 배열을 문자열로 갖는 데이터베이스의 테이블을 사용하는 것이 매우 유용 할 수 있습니다.

+0

그래서 세션 대신 데이터베이스에 글을 쓰고 싶습니다. 괜찮은 것 같지만 성능면에서 이것이 더 중요 할 것이라고 생각했을 것입니다. – Andrew

+0

내 실제 제안은 한 번에 많은 양의 데이터를 요청하지 않는 것이지만 모든 경우에 세션과 다른 메커니즘에서 요청해야합니다. 데이터베이스가 가장 쉽지만 체크 아웃 [memcached] (http://memcached.org/) 또는 이와 유사한 메모리 캐싱 메커니즘이 필요할 수 있습니다. – hexblot