2010-07-11 8 views
7

예를 들어, 사용자가 로그인하고 있으며 시스템에서 해당 정보를 저장하고 있습니다 (예 : birth date). 세션에서이 정보를 얻거나 데이터베이스를 쿼리하는 것이 더 빠릅니까?세션이 데이터베이스를 쿼리하는 것보다 빠릅니까?

내 아이디어는 사용자가 한 번만 로그인하면 세션이 항상 존재하지만, 데이터베이스를 쿼리하면 사용자가 페이지를 다시로드하면 시스템이 페이지를 다시로드하는 대신 임시 '장소'의 데이터

저는 PHP와 MySQL을 사용합니다.

+0

어떤 프로그래밍 언어와 dbms를 사용합니까? –

+0

내 대답을 편집했습니다. – Adam

답변

9

거의 모든 언어와 데이터베이스를 지원합니다. 사용자 세션은 대개 메모리에 저장되며이를 유지하는 것은 찾는 것입니다. 데이터베이스 액세스는 일반적으로 다른 프로세스와의 소켓 통신을 수반합니다. 비교적 무겁다.

+2

필자가 아는 한 PHP의 세션은 메모리가 아닌 기본적으로 파일에 저장됩니다. 각각의 히트마다이 세션 파일을 파일 시스템에서 읽어 와서 PHP 배열로 파싱해야합니다. 맞아요. 세션은 더 빠르지 만 그 이유는 다른 이유 때문에 사용자의 세션 데이터를로드해야하고 그가 말하는 버irt 데이가 이미있을 것이기 때문입니다. 데이터베이스에 질문 할 필요가 없습니다. – dwich

1

어떻게 그 모든 일을하고 있습니까? 로그인 페이지에서 사용자 자격 증명을 확인하는 것입니다. 그렇다면 데이터베이스에서 사용자가 지정한 기준이 일치하는지 확인하기 위해 쿼리를 작성해야합니다. 그럴 경우 세션에 저장 한 다음 해당 세션을 기반으로 계속 진행합니다.

그래서 비교가 아니므로 로그인 페이지에서 데이터베이스를 한 번 쿼리하고 나중에 세션을 사용해야합니다.

로그인 페이지 사실

// database query run once only at this page 
// if user exits, you store it into session else redirect with an error message 
+0

나는 그것을 어떻게하는지, 나의 질문은 데이터베이스 쿼리보다 빠르다는 것을 안다. :) – Adam

+1

@CIRK : 물론 세션은 빠르지 만 보안에 대해서도 고려해야한다. – Sarfraz

+0

감사의 말은 정말 새로운 주제입니다. 감사합니다. 새로운 질문을 만들었습니다. http : //stackoverflow.com/questions/3224286/php-what-are-the-risks-of-php-sessions – Adam

0

, 칼의 대답은 완전히 정확하지 않고, "MySQL의"를 말하는 것은 도움이되지 않습니다.

mysql과 같은 데이터베이스 시스템에는 "스토리지 엔진"이 있습니다. 이것들은 보통 파일에 쓰지만 메모리 (MEMORY)에 쓰는 것도 있고 다른 것들은 메모리를 쓰지 만 파일 백업 (MyISAM)과/dev/null (BLACKHOLE)을 유지하는 것도있다.

그래서 모든 스토리지 엔진에 따라 달라집니다

  • 의 MyISAM - MySQL의 (3)과 같은 기본 엔진.기반 해시, 임시 테이블
  • 이노를 들어, 메모리에 유용한 저장 - - 뛰어난 성능
  • 메모리 (23)는
  • 잠금 거래 및 페이지 수준 지원 - 거래, 행 수준 잠금 및 외래 키
  • 버클리 지원
  • BLACKHOLE - 예 스토리지 엔진
  • ARCHIVE - -을/dev/null 스토리지 엔진
  • 예 (당신이 쓸 것을 사라집니다) 아카이브 스토리지 엔진
  • CSV - CSV 스토리지 엔진
  • NDBCLUSTER - 클러스터 내결함성, 메모리 기반 테이블
  • FEDERATED - 연합 MySQL의 스토리지 엔진
  • MRG_MYISAM - 동일 MyISAM 테이블의 컬렉션
  • ISAM - 폐기 스토리지 엔진

을 (PhpMyAdmin Egines 목록의 목록)

+0

그래서'MEMORY'를 사용하면'SESSION'처럼 작동할까요? – Adam

+0

이 "대답"은 기껏해야 보충 사항이며 질문을 다루지 않습니다. – rvdavid

+0

@rvdavid - 질문에 답해 드리지만 OP는 옵션을 선택해야합니다. – Christian

관련 문제