2010-06-07 3 views
0

myarding 테이블의 외래 키를 사용하여 분할을 수행 할 수 없기 때문에 샤딩 테이블에 대해 조금 생각했습니다. 어쩌면 두 가지 기능을 모두 갖춘 다른 관계형 데이터베이스로 전환 할 수있는 옵션이 있지만, 지금은 옵션으로 볼 수 없습니다.mySQL 및 관계형 데이터베이스 : 응용 프로그램 수준에서 샤딩/분할 처리 방법

따라서 샤딩 아이디어는 상당히보기 흉한 것으로 보입니다. 그러나 응용 프로그램 수준에서이를 수행하는 좋은 접근 방법은 무엇입니까?

필자는 테이크 오프 포인트가 각 테이블의 기본 키에 최대 값을 접두사로 붙일 것이라고 추측하고 있습니다. products_4000000, products_8000000products_12000000과 같은 것입니다. 그런 다음 응용 프로그램은 간단한 if 문으로 실제 데이터베이스 호출을 수행하기 전에 요청되는 ID (PK)의 크기가 4, 8 또는 12 백만보다 작은 지 확인해야합니다.

이렇게 올바른 방향으로 나아가는 단계입니까? 아니면 정말 바보 같은 일을하고 있습니까?

업데이트 :
일관된 해싱은 기본 키 또는 유사 항목을 기반으로 여러 테이블간에 행을 공유하는 아이디어 일 수 있습니다. 또 다른 옵션은 데이터베이스 수준에서 샤딩을 도입하는 것입니다. 나는 트리거/뷰 또는 이것이 일어나도록하기 위해 사용 된 것이 무엇인지 충분히 알지 못합니다.

답변

관련 문제