내가 2 개 차 인덱스가있는 "메시지"테이블이 말해봐. 그 방법은 특정 수신자에게 보낸 모든 메시지를 검색하기 위해 하나의 샤드 만 쿼리하면됩니다.데이터베이스 샤딩에서 비정규 화/보조 인덱스를 어떻게 처리합니까? </ul> <p></li> 내가 "recipient_id"에 의해 "메시지"테이블을 샤딩 할</p> <ul> <li>"recipient_id"</li> <li>"SENDER_ID"
그러나 동시에 특정 발신자가 보낸 모든 메시지를 요청하는 쿼리를 만들 수 있기를 원합니다. 이제 "메시지"테이블의 모든 단일 샤드에 해당 쿼리를 보내지 않습니다. 이를 수행하는 한 가지 방법은 데이터를 복제하고 "sender_id"에 의해 "message_by_sender"표를 분할하는 것입니다.
이 방법의 문제점은 메시지를 보낼 때마다 "message"및 "message_by_sender"테이블에 메시지를 삽입해야한다는 것입니다.
그러나 "message"에 삽입 한 후 "message_by_sender"에 삽입하지 못하면 어떻게 될까요? 이 경우 메시지는 "message"에 있지만 "message_by_sender"에는 없습니다.
"message"에 메시지가있는 경우 2 단계 커밋을 사용하지 않고 "message_by_sender"에도 있는지 확인하려면 어떻게해야합니까?
데이터베이스를 파기하는 사람에게는 매우 일반적인 문제 여야합니다. 너는 그것을 어떻게 처리 할까?