2009-07-29 11 views
0

함께 작업 한 ERP 응용 프로그램 중 하나는 데이터베이스에 연결된 사용자가 1 명 (예 : USER A) 인 방식으로 구성되었습니다. 시스템에 로그온 한 상태에서 아무 것도하지 않으려 고 시도한 응용 프로그램 사용자 (인력이 수천 명에 이른 사용자)는 실제로 USER A가 데이터베이스에 연결하여 해당 사용자에 대한 쿼리를 실행하고있었습니다. 데이터베이스는 Oracle입니다.을 mySQL에 연결

mySQL을 사용하여 비슷한 결과를 얻는 방법을 궁금합니다. php 및 mySQL 데이터베이스로 구축 된 웹 응용 프로그램이 있습니다. 다른 사람들이 웹을 통해 데이터베이스에 쿼리 할 것을 기대합니다. 현재 사용자가 웹 페이지를 열면 단일 db 사용자를 통해 데이터베이스에 연결됩니다. 쿼리가 끝나면 연결을 닫습니다. 그러나 데이터베이스는 최대 10 명의 사용자 연결을 가지고 있습니다. 즉, 하나의 사용자는 최대 10 개의 연결 만 설정할 수 있습니다. 내 응용 프로그램을 사용하려고하는 모든 사용자에 대해 여러 사용자를 만들 필요가 없습니다. 응용 프로그램을 사용할 사람의 수를 모릅니다. 확장 가능한 솔루션이라고 생각하지 않습니다.

+0

왜 이렇게하고 싶습니까? – Jason

+0

max_connections 10은 사용자가 동시에 10 개가 넘는 요청을 연결할 수 없음을 의미합니다. 스크립트가 빨리 실행되면 사용자는 빨리 연결하고 연결을 끊습니다. 기본 설정으로는 문제가 없을 것입니다. 귀하의 회신에 감사드립니다 – Frankie

답변

0

db 연결 캐싱 메커니즘을 웹 서버 또는 프로그래밍 언어 용 구성 요소로 찾아야합니다. 이러한 메커니즘은 연결을 투명하게 재사용합니다.

0

데이터베이스 연결을 거부하면 HTTP 오류 502가 반환됩니다. 각 pageload가 끝날 때 연결이 닫히면 최대 100ms 가량 지속되므로 대부분의 상황에서는 동시 연결이 낮습니다. 트래픽이 당신이 망치 너무없는 콘텐츠를 PHP에서 지속적인 MySQL의 연결을 활성화하거나 캐시 할 수 있습니다 매우 높은 경우

max_connections = 150 
max_user_connections = 150 

:

당신은 동시 연결을 높이기 위해, 그것을 조정 my.cnf 파일을 편집해야할까요 데이터 베이스.

희망 하시겠습니까?

+0

. 나는 상용 웹 호스팅 회사를 사용하고 있습니다. my.cnf 파일을 편집하여 시스템 변수를 편집 할 수 있습니까? 내 계정의 루트 디렉토리에서 그러한 파일을 찾을 수 없습니다. –

+0

일부 호스트는 허용하지 않습니다. 공유 호스팅 계정을 사용하는 경우 다른 고객을 보호하기위한 제한이있을 수 있습니다. 제 의견으로는 10 개의 연결이 잘되어 있어야하며, 공유 호스팅을 초과하는 경우 항상 더 많은 제어를 제공하는 VPS를 고려할 수 있습니다. –

관련 문제