데이터베이스와 테이블을 샤딩한 후 가장 먼저 떠오르는 질문은 라우팅 키를 선택하는 방법과 키를 라우팅하는 방법입니다. 라우팅 키는 존재해야 하며 각 테이블에서 고유해야 합니다. 라우팅 전략은 데이터가 균등하게 분산되도록 해야 합니다.
많은 양의 데이터를 보관하는 경우 라우팅 키로 시간을 선택할 수 있습니다. 예를 들어, 데이터 생성 시간을 라우팅 키로 사용하여 매월 또는 분기별로 테이블을 생성합니다. 데이터베이스와 테이블을 샤딩한 후 라우팅 전략으로 시간을 사용하면 기록 데이터 액세스 트래픽이 적고 트래픽이 최신 데이터베이스 테이블로 전송됩니다.
비즈니스 관련 라우팅 키를 디자인할 수도 있습니다. 이렇게 하면 각 데이터베이스의 리소스가 트래픽을 잘 견딜 수 있습니다.
테이크아웃 주문 플랫폼은 사용자 관점에서 테이크아웃 주문 현황을 실시간으로 확인하고 주문 정보를 데이터베이스와 테이블로 분할한 후 추적할 수 있도록 지원해야 합니다. 판매자는 주문 정보를 조회하고, 주문을 통해 요리의 품질을 분석하고, 비즈니스 결정을 내려야 합니다.
User Consumer = C-side Merchant Business = B-side
사용자가 주문한 후 주문이 여러 테이블에 포함될 수 있으며 쿼리할 때 여러 테이블을 쿼리해야 할 수도 있습니다.
주문 생성 시 특정 테이블에 무작위로 삽입되었거나, 어느 테이블에 삽입되었는지 알 수 없는 경우, 주문 조회 시 모든 테이블을 쿼리하여 정확성을 보장해야 합니다. 쿼리의.
주문을 삽입할 때 특정 규칙이 있으면 이 규칙에 따라 데이터베이스에 삽입되고, 쿼리할 때 해당 규칙도 실행되어 해당 테이블을 쿼리하게 됩니다. 이는 데이터 작업의 복잡성을 줄여줍니다. 사용자와 판매자 모두 데이터를 쿼리할 때 동일한 라우팅 전략을 따를 수 있으며, 이는 라우팅 전략을 설계하여 달성할 수 있습니다.
이전 섹션의 라우팅 전략 분석에 따르면 이제 라우팅 키를 선택해야 합니다. 클라이언트는 동일한 사용자 ID의 데이터를 고정 테이블에 저장할 수 있도록 허용하므로 사용자 ID를 라우팅 키로 선택할 수 있습니다.
단일 데이터베이스의 경우 사용자는 주문을 하고, 주문을 생성하고, 사용자 ID를 라우팅 키로 사용하고, user_id의 해시 값을 가져온 다음 테이블 수를 모듈로하여 필요한 해당 테이블을 얻습니다. 라우팅한 다음 데이터를 씁니다.
라이브러리, 테이블이 여러 개인 경우 해당 라이브러리를 먼저 찾은 후 해당 테이블을 찾아야 합니다. 다중 데이터베이스 및 다중 테이블에 대한 라우팅 전략: 사용자 주문 -> 주문 생성 - > 라우팅 전략: 사용자 ID의 해시 값을 기준으로 데이터베이스 수를 모듈로하여 해당 데이터베이스 찾기 -> 사용자의 해시 값 분할 쌍별 ID 테이블 수, 그리고 테이블 수를 모듈로하여 해당 테이블을 찾습니다.
라우팅 전략 설계의 핵심은 특정 비즈니스 시나리오에 따라 설계하고 해시 값 계수를 사용자 정보와 더 밀접하게 관련된 라우팅 키로 사용하는 것입니다.
판매자 B측 테이블 세트(끝 C와 끝 B는 독립적임)
사용자 관점에서는 user_id를 라우팅 키로 사용하고 판매자 관점에서는 판매자 ID를 라우팅 키로 사용합니다. 판매자는 라우팅 키를 통해 어떻게 데이터를 라우팅합니까? 주문을 하면 Youhu는 팀원의 주문 번호를 MQ로 보냅니다. 판매자는 이 MQ를 소비한 다음 주문 번호를 기반으로 주문 정보를 얻은 다음 주문 정보를 판매자의 데이터베이스 테이블에 삽입할 수 있습니다. 판매자의 라우팅 정책과 사용자의 라우팅 정책은 동일합니다.
클라이언트 및 판매자의 전체 데이터 흐름 차트:
위 내용은 MySQL 데이터베이스 및 테이블 파티셔닝 이후 라우팅 전략 설계 분석 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!