짧은 이야기 - 기본 사용자 세부 정보 (userid (색인), 사용자 이름, 암호, 상위 사용자, 상태)가 하나의 데이터베이스 및 확장 사용자에 저장되는 largish 데이터베이스를 다루고 있습니다. 세부 사항 (동일한 userid (색인), 성명, 주소 등)은 다른 서버의 다른 데이터베이스에 저장됩니다.MySQL 연합 스토리지 엔진 대 복제 (성능)
확장 사용자 세부 정보 필드의 전체 이름순으로 정렬 된 특정 사용자가 소유 한 모든 사용자를 (기본 사용자 세부 정보 데이터베이스의 상위 사용자 필드를 통해) 선택하는 쿼리를 수행해야합니다. 시간 (수천, 어쩌면 수만명이 한 사용자에게).
내가 해결할 수있는 한 세 가지 가능한 솔루션이 있습니다.
아니오 JOIN - 하나의 쿼리에서 모든 사용자 ID를 가져 와서 해당 ID를 기반으로 두 번째 쿼리를 실행하십시오. 사용자 ID의 수가 너무 많아서 최대 쿼리 길이를 초과하거나 끔찍하게 비효율적 일 수 있다는 점을 제외하고는 괜찮습니다. 내가 할 수
- 는 2
사용을 페더 레이 티드 스토리지 엔진 테이블을 가입 확장 된 세부 사항을 서버에 기본 사용자 세부 데이터베이스 테이블을 복제
3이 가장 좋은 옵션이지만 성능에 대한 정보를 거의 찾을 수 없었으며 프로덕션 데이터베이스에서이 정보를 사용하는 데주의해야한다는 의견도있었습니다.
최상의 구현 방법에 대한 의견을 보내 주시면 감사하겠습니다.
감사합니다.