2009-06-25 2 views
1

저는 현재 데이터베이스 엔진 용 PHP 응용 프로그램과 드라이버 (클래스)를 작성하고 있습니다. 복제 지원 (마스터 - 슬레이브)을 작성해야하는지 궁금합니다. 이 점에 조금 익숙하지 않기 때문에로드 밸런싱/복제를 지원하려면 프로젝트 또는 클래스가 어떤 점에서 걱정해야합니까? 오, 이것이 MySQL에 관한 것입니다.데이터베이스 드라이버 클래스가 복제 (PHP)를 지원해야합니까?

답변

1

마스터 - 슬레이브 DB를 사용하는 방법은 모든 "활성 사용"에 대해 마스터를 사용하고 모든보고에 대해 슬레이브를 사용하는 것입니다 (데이터가 여전히 "따라 잡기"는 중요하지 않음) . 필요에 따라 마스터에서 데이터 조작이 이루어질 수 있으며, 슬레이브에서 데이터 읽기가 발생합니다. 삽입 또는 업데이트를 차단할 때 특히 유용합니다. (참고 : 가능한 경우 블로킹을 피하는 데 도움이되는 "삽입 지연된"MySQL 구문을 고려하십시오.)

PHP가 지원하는 한, 실제로 필요한 것은 다중 (2 개) 데이터베이스에 대한 완벽한 처리를 유지하는 것입니다 연결을 사용하고 원하는대로 마스터 (읽기/쓰기) 또는 슬레이브 (유일한 읽기) db 연결을 사용하십시오.

+0

여러 연결을 올바르게 처리하고 사용자가 마스터 - 슬레이브 시스템을 설정할 수있는 좋은 클래스를 알고 있습니까? – Tower

+0

솔직히 말해서 여기에 나와있는 것처럼 (그리고 동일한 튜토리얼의 다른 부분에서) 원시 PHP를 사용하는 것이 좋습니다. http://www.freewebmasterhelp.com/tutorials/phpmysql/4 단계를 기본적으로 mysql_connect mysql_select_db, mysql_query, mysql_close)를 사용하여 마스터를 연결 한 다음 다른 데이터베이스 대상을 사용하여 슬레이브를 연결하십시오. 원하는 경우 각 코드 조각을 사용하십시오. – DreadPirateShawn

1

슬레이브를 읽고 마스터로 쓰기를 사용한다고 생각하면 클래스는 적어도 여러 연결을 동시에 지원해야합니다.

내가 사용한 API가 표시됩니다. 그런 식으로 선택하면 수업을 보낼 수 있습니다.

ShusterDb :: getInstance ('read') -> select ($ sql); //이 메소드에서 SELECT인지 확인합니다. ShusterDb :: getInstance ('write') -> 스칼라 ($ sql);

0

Itay, 당신이 수업을 들으 려한다면, 나는 그것을 보거나/아마도 그것을 사용하고 싶을 것이다.

관련 문제