2013-03-19 4 views
2

2 개의 MySQLi 객체 $db1$db2을 생성한다고 가정합니다.어떻게 두 데이터베이스에서 동시에 선택합니까?

연결은 서로 다른 서버 (로컬)에 있으며 데이터베이스 구조는 동일합니다. 동일한 쿼리를 사용하여 두 서버에 쿼리하고 싶습니다.

내 질문은 :

  1. 나는 동시에 데이터베이스 쿼리 수 있습니까?
  2. 결과를 결합하는 효과적인 방법은 무엇입니까?

몇 가지 통찰력이나 올바른 방향을 지적 할 수 있습니다.

+2

왜 제가 묻지 않더라도 이것을하고 싶습니까? – zajd

+0

샤딩 플랫폼 만들기 – user2103849

+0

MySQL이 샤딩을 지원하는지 확실하지 않지만, 그렇다면 샤딩을 처리하도록 MySQL을 구성해야합니다. 샤딩을 구현하는 것은 사소한 일이 아니며 PHP로 수행하는 것은 어쨌든 좋은 생각이 아닙니다. –

답변

4

두 스레드 (하나는 각 DB를 쿼리)를 시작하고 두 스레드를 결합한 다음 결과를 처리 할 수 ​​있습니다.

http://php.net/gearman

http://sourceforge.net/projects/phpthreadlib/

https://github.com/kulikov/php-threads-manager

https://github.com/dlsniper/php-threads

https://github.com/unusorin/php-threads

:

스레드에 대한 PHP 지원과 같은 확장을 통해 사용할 수 있습니다

앱 레벨 샤딩을하고 싶다고 말합니다. 나는 app level sharding이 사소하지 않다는 것을 주장했다. 처음에는 쉽게 설정할 수 있지만 새 샤드를 추가해야 할 때 복잡합니다 (앱이 온라인 상태에서 새 서버로 키 범위를 마이그레이션하는 것은 간단하지 않습니다). 적어도 샤딩과 파티셔닝에 대한 MySQL의 지원을 살펴보십시오. http://xeround.com/blog/2011/11/mysql-sharding-vs-mysql-partitioning

+0

그것은 또한 Gearman 확장에서 볼 가치가있을 수 있습니다 : http://php.net/gearman –

+0

덕분에, gearman 보이는 유망한 – user2103849

+0

@ SverriM.Olsen : Gearman을 답변에 추가했습니다. 그 점을 지적 해 주셔서 감사합니다. –

관련 문제