2009-05-01 5 views
3

MySQL 프록시를위한 대안이 있습니까? 아직 알파 상태이므로 사용하고 싶지 않습니다.데이터베이스 샤딩을위한 MySQL 프록시 대안

10 대의 서버에 걸쳐 table_1 table_2 table_3 table_4 ... table_10의 크기를 가진 10 개의 MySQL 서버가 있습니다. 각 테이블의 구조는 동일하며, 다른 데이터 세트를 사용하는 단순한 조각입니다.

내 클라이언트 응용 프로그램이 쿼리를보고 데이터를 대신하는 단일 SQL Server (프록시)에 연결할 수있는 MySQL 프록시 대신 사용할 수있는 방법이 있습니까?

예를 들어 클라이언트가 table_5가있는 다섯 번째 SQL Server에 연결하여 데이터를 가져 오는 Proxy에서 "SELECT * FROM table_5 WHERE user = 123"을 요청하면?

답변

4

Spock Proxy은 대용량 MySQL 데이터베이스의 범위 기반 가로 분할을 지원합니다. 프록시는 클라이언트에서 SQL 쿼리를 가로 채고 데이터베이스가 분할 된 방식에 따라 올바른 데이터베이스에 쿼리를 보낸 다음 각 데이터베이스의 결과를 집계하여 일반 MySQL 결과 집합으로 클라이언트에 반환합니다.

0

프록시를 추가하면 앱에서 거의 또는 전혀 변경할 수 없지만 커다란 단일 실패 지점을 추가한다고 생각하면 가치가 있습니다.

응용 프로그램 계층을 조사 할 데이터베이스를 결정하는 데 필요한 논리를 이동하는 것이 좋습니다.

+1

데이터베이스에 액세스하는 여러 응용 프로그램 구성 요소가 있습니다 ... 그래서 응용 프로그램 계층 밖으로 이동하려고합니다. 디멀티플렉서의 구성을 변경해야하는 경우 여러 가지 응용 프로그램을 변경해야합니다. 이는 현실적인 것처럼 보이지 않습니다. 클라이언트 응용 프로그램 -> HA 프록시 (LB 프록시 선택) -> LB 프록시 (MySQL 프록시) -> SQL DB –