2012-07-17 3 views
0

나는 그물 전체를 다 쳐다 보았고 다양한 대답을 발견했지만 몇 가지 구체적인 질문이있었습니다.MySQL 데이터베이스 연결 및 크기

나는 페이스 북의 느낌과 함께 약 5400 명의 활동적인 회원으로 구성된 사이트를 가지고있다. 나는 10 개의 MySQL 데이터베이스를 가지고 있는데, 하나의 데이터베이스는 "users"테이블과 "User_stats"테이블을 포함하고있다. 다음 데이터베이스에는 블로그, 상태 업데이트 등에 대한 "사진"및 "사진 설명"등이 포함됩니다. 각 데이터베이스에는 약 4-5 개의 테이블이 있습니다. 큰 테이블에는 약 250,000 개의 행이 있다고 생각합니다.

몇 년 전에 저는 공유 호스트에 한계가 있었기 때문에 다른 데이터베이스로 구분했습니다. 이제 가상 서버가 있으므로 이러한 제한이 없습니다.

내 코드가 페이지에로드 될 때 MySQL 연결을 열거 나 닫고 다른 데이터베이스를 열거 나 닫거나 다른 테이블을 하나에 넣으면 더 좋을까요? 데이터베이스 페이지의 시작 부분에 연결을 열고 맨 아래에 닫을 것입니다.

프로필 페이지를로드하면 사진, 최근 블로그 항목, 사용자 데이터 등을 끌어 오기 때문에 페이지가 끝날 때까지 10 개 데이터베이스 모두에 연결할 수 있습니다.

나는 스케일링에 대해 걱정이된다. 그리고 나는 그것들을 모두 1 데이터베이스에 넣으면 많은 연결을 열고 닫는 것보다 덜 세금이 부과 될 것이라고 생각했다.

귀하의 의견은 무엇입니까?

+0

데이터베이스 클라이언트 아키텍처에 따라 달라집니다. 일부 언어는 풀링을 지원하지만 일부 언어는 지원하지 않습니다. –

+0

나는 PHP와 mysql을 사이트에 사용하고있다. 여러 데이터베이스를 가지고있는 지점을 파악하려고합니다. 나는 하나의 연결보다는 테이블을 자주 열고 닫는 것이 더 어려울 것이라고 생각했다. – dbye

답변

0

모든 데이터베이스가 동일한 MySql 인스턴스에서 호스트되는 한, 단일 클라이언트 연결은 모든/모든 데이터베이스를 쿼리 할 수 ​​있습니다.

예 :

/*Query #1*/ 
SELECT FirstName, LastName 
FROM userdb.users 
WHERE UserID = ? 

/*Query #2*/ 
SELECT PhotoName, Height, Width 
FROM photodb.photos 
WHERE PhotoID = ? 

폐쇄하고 모든 데이터베이스에 대한 연결을 재개하는 것은가는 방법이 아니다.

+0

그래서 하나의 데이터베이스에 모든 테이블을 배치하고 MySQL 연결을 페이지에 대해 열어 두었다가 페이지의 마지막에 닫으면 아마도가는 가장 좋은 방법일까요? 전체 사이트에 대해 약 40 개의 테이블 만 있습니다. – dbye

+0

@DerekB 모든 테이블을 단일 데이터베이스로 옮길 필요는 없습니다. 단일 연결은 갈 길입니다. 클라이언트 언어에 따라 가능한 경우 연결 풀링을 사용할 수 있습니다. –

+0

PHP 만 사용하고 있기 때문에 PEAR 사용에 관한 몇 가지 기사가 인터넷에서 발견되었지만 PEAR은 전혀 알지 못합니다. 나를 올바른 방향으로 안내 할 수있는 링크가 있습니까? 기본적으로 한 번에 10 개의 모든 데이터베이스에 연결되지만 각 쿼리에 대한 연결을 선택할 수 있습니까? – dbye