이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 16305|회답: 0

[출처] 데이터베이스의 마스터-슬레이브 지연 시간은 부정확한 쿼리 해상도를 초래합니다

[링크 복사]
2020-4-2 20:41:03에 게시됨 | | | |
【서문】

데이터가 일정 양에 도달하면 데이터베이스가 전체 시스템의 병목 현상이 되며, 최적화 전략은 일반적으로 읽기와 쓰기 분리로 채택되며, 데이터베이스는 메인 데이터베이스를 데이터베이스에서 분리하여 읽기와 쓰기 분리를 실현합니다(메인 데이터베이스에서 쓰기 요청 작업, 데이터베이스에서 읽기 요청 작업);

【데이터 지연 해결 아이디어】

1. 마스터-슬레이브 동기화 원리(여기서 가장 인기 있는 MySQL을 예로 들자)

다음은 binlog를 통한 고전적인 MySQL 마스터-슬레이브 데이터 동기화의 회로도입니다:



2. 문제는 어떻게 발생하는가?

1. 위 회로도에서 마스터-슬레이브 동기화에는 일정한 지연이 있으며, 이는 지연 크기에 영향을 미친다는 것을 쉽게 알 수 있습니다:

(1) 지연의 크기는 마지막 동기화부터 현재까지 생성된 데이터의 양에 따라 달라집니다

(2) 서버 간 현재 네트워크 상황

(3) 마스터-슬레이브 서버 자체의 압력(CPU, 메모리, IO 등)

2. 데이터베이스 서비스는 일반적으로 인트라넷에 위치하며, 서버는 구매 시 실제 필요 수준보다 더 높은 구성에 위치하기 때문에 동기화가 기본적으로 매우 빠르며, 일반적으로 밀리초 단위입니다;

3. 일반적인 비즈니스 시나리오에서는 밀리초 지연을 무시할 수 있습니다;



4. 일반적인 경우와 특수한 경우가 있으며, 일부 특수 상황은 실시간 밀리초 시차가 필요합니다. 이러한 특별한 상황에 대한 일반적인 해결책을 소개합니다.

3. 데이터 지연 시간 해결책:

1. 스킴 1: 프로그램 더블 작성(메인 데이터베이스를 쓰고 동시에 데이터베이스를 읽음)



2. 계획 2: 프로그램을 읽어 메인 데이터베이스를 확인한다



3. 방식 3: 메인 데이터베이스를 쓰고 캐시를 쓰기(일반적으로 데이터베이스 동기화의 최대 지연보다 약간 더 긴 만료 시간을 설정), 프로그램을 읽고, 캐시를 읽고, 슬레이브 데이터베이스를 읽습니다



4. 세 가지 방식의 장단점:

1. 스킴 1: 이중 쓰기는 일정 수준의 성능을 소모하는데, 이는 구현이 비교적 간단하고 고동시 쓰기 시나리오에는 적합하지 않습니다;

2. 방식 2: 읽기 프로그램은 메인 라이브러리의 성능에 영향을 미치며, 이는 구현이 비교적 간단하고 고동시 읽기 상황에는 적합하지 않습니다.

3. 방식 3: 대부분의 경우, 읽기와 쓰기가 쓰기 성능을 더 많이 소모하여 구현이 더 복잡하고, 높은 동시 읽기와 쓰기 모두에 적합합니다(캐시 읽기와 쓰기가 매우 빠릅니다);

【요약】

1. 실행이 중요하지만, 더 중요한 것은 아이디어입니다;

2. 많은 근본 원칙과 아이디어가 보편적이다
원문 언어:https://blog.csdn.net/zhanghan18 ... le/details/91638443




이전의:.net/c# ado.net 반환 값을 가진 저장 프로시저를 실행합니다
다음:MSSQL (NOLOCK) 더티 리딩
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com