2011-01-21 2 views
1

두 데이터베이스가 있습니다. 하나는 파이어 버드 데이터베이스이고 다른 하나는 데이터베이스입니다. 데이터베이스입니다.파이어 버드와 PHP를 MySQL에서 동기화

파이어 버드 데이터베이스는 정보가 변경되는 주요 사이트입니다. 이러한 변경 사항을 다른 MySQL 데이터베이스와 동기화해야합니다.

나는 파이어 버드를 제어 할 권한이 없다. 나는 그것을 선택할 수있다. 트리거, 이벤트 또는 유사 항목을 추가 할 수 없습니다. 나는 MySQL 데이터베이스에 대한 모든 통제권을 가지고있다.

이 두 서버는 어떤 방식으로도 연결되어 있지 않으며 서로 다른 위치에 있으므로 '인터넷'을 통해 동기화를 수행해야합니다.

MySQL 데이터베이스를 호스팅하는 서버의 PHP에서 동기화를 수행해야합니다.

현재 모든 레코드 (15 분마다)를 거치고 행의 해시를 계산하고 두 해시를 비교하며 일치하지 않으면 전체 행을 업데이트합니다. 그것은 작동하지만 그냥 잘못된 것 같아 어떤 식 으로든 최적화되지 않습니다.

다른 방법이 있습니까? 나는 무엇인가 놓치고 있습니까?

감사합니다.

답변

1

나는 한 번 똑같은 것을 만들었으며 일반적으로 더 나은 해결책은 없다고 생각합니다.

당신은 지금까지 가지고있는 것을 어느 정도 최적화 할 수 있습니다. 예 :

  • 일부 테이블에 "최신 업데이트"정보가있는 열이있는 경우 마지막 동기화 이후 변경된 열만 선택할 수 있습니다.
  • 비교 메커니즘을 변경할 수 있습니다. 전체 행을 비교 및 ​​업데이트하는 대신 개별 열을 비교할 수 있으며 MySQL 측에서 변경된 행을 업데이트 할 수 있습니다. MyISAM 테이블의 경우에는 속도가 빨라지 겠지만 InnoDB를 사용하는 경우에는 그렇지 않을 수도 있습니다.
+0

'최신 업데이트'열은 완벽 할 수 있지만 불행히도 여기에는 없습니다. 맞춰서 비교 메커니즘이 내가 할 수있는 유일한 방법이라고 생각해보십시오. 답변 해주셔서 감사합니다. – stroke

관련 문제