mysql - 데이터베이스 읽기-쓰기 분리가 데이터베이스 성능을 향상시키는 이유는 무엇입니까?
PHPz2017-05-24 11:34:46
0
2
1284
읽기-쓰기 분리가 데이터베이스 성능을 향상시키는 이유 위의 블로그를 참조하세요. 데이터베이스 상식에 따르면 읽기-쓰기 분리는 실제로 데이터베이스 성능을 향상시킬 수 있지만 기본 원칙을 이해하고 있는지는 알 수 없습니다. 예를 들어, 한 머신은 읽고 다른 머신은 쓰지만 여전히 데이터를 동기화해야 합니다. 그렇지 않으면 시스템이 의미가 없게 됩니다. 음, 동기화는 쓰기 작업이 아닙니까? 그럼 본질적으로 똑같지 않은 걸까요?
하지만 읽을 때 동기화할 필요는 없습니다. 하나는 읽기 성능이 좋고 하나는 쓰기 성능이 높습니다. 읽기와 쓰기의 분리는 읽기가 쓰기보다 훨씬 더 큰 시나리오에 적합합니다.
MySQL은 많은 데이터베이스 스토리지 엔진을 사용하며 각 엔진에는 장점과 단점이 있습니다. 일부는 지원하지 않지만 성능과 속도가 높으며, 일부는 빠르게 읽지만 매우 느리게 쓰고, 일부는 정반대입니다. 마스터-슬레이브 읽기 및 쓰기 분리는 각 데이터베이스 엔진의 장점을 최대한 활용할 수 있습니다. .
귀하의 질문: 하지만 데이터는 여전히 동기화되어야 합니다. 실제로 모든 데이터가 단일 항목이므로 이는 동기화로 간주되지 않습니다. 애플리케이션 계층의 데이터는 메인 라이브러리에 직접 기록되지만 슬레이브 라이브러리의 데이터는 binlog에서 복원됩니다. 또한 가장 중요한 차이점은 메인 라이브러리가 binlog를 슬레이브 라이브러리에 비동기적으로 전송한다는 점입니다. 슬레이브 라이브러리에서의 복구도 비동기식입니다.
슬레이브 데이터베이스가 없더라도 마스터 데이터베이스는 데이터베이스 오류를 방지하기 위해 binlog 데이터를 하드 디스크나 다른 컴퓨터에 기록해야 합니다. 데이터베이스 문제가 발생하면 DBA는 binlog에서 이전 데이터만 복원할 수 있습니다.
설명에 "하나는 읽기용이고 다른 하나는 쓰기용입니다." 아마 초보자일 수도 있고, 실제 프로젝트에 참여해보지 않았을 수도 있을 것 같아요. 실제 온라인 프로젝트는 N 스테이션에서 읽고 쓰고 M 스테이션에서 백업하는 것에 관한 것입니다. 읽기와 쓰기가 분리된 후, N 스테이션은 읽고, N 스테이션은 쓰고, M 스테이션은 백업할 수 있습니다. 또는 1 스테이션은 읽고, 1 스테이션은 쓰고, M 스테이션을 백업할 수 있습니다.
하지만 읽을 때 동기화할 필요는 없습니다. 하나는 읽기 성능이 좋고 하나는 쓰기 성능이 높습니다. 읽기와 쓰기의 분리는 읽기가 쓰기보다 훨씬 더 큰 시나리오에 적합합니다.
MySQL은 많은 데이터베이스 스토리지 엔진을 사용하며 각 엔진에는 장점과 단점이 있습니다. 일부는 지원하지 않지만 성능과 속도가 높으며, 일부는 빠르게 읽지만 매우 느리게 쓰고, 일부는 정반대입니다. 마스터-슬레이브 읽기 및 쓰기 분리는 각 데이터베이스 엔진의 장점을 최대한 활용할 수 있습니다. .
귀하의 질문: 하지만 데이터는 여전히 동기화되어야 합니다. 실제로 모든 데이터가 단일 항목이므로 이는 동기화로 간주되지 않습니다. 애플리케이션 계층의 데이터는 메인 라이브러리에 직접 기록되지만 슬레이브 라이브러리의 데이터는 binlog에서 복원됩니다. 또한 가장 중요한 차이점은 메인 라이브러리가 binlog를 슬레이브 라이브러리에 비동기적으로 전송한다는 점입니다. 슬레이브 라이브러리에서의 복구도 비동기식입니다.
슬레이브 데이터베이스가 없더라도 마스터 데이터베이스는 데이터베이스 오류를 방지하기 위해 binlog 데이터를 하드 디스크나 다른 컴퓨터에 기록해야 합니다. 데이터베이스 문제가 발생하면 DBA는 binlog에서 이전 데이터만 복원할 수 있습니다.
설명에 "하나는 읽기용이고 다른 하나는 쓰기용입니다." 아마 초보자일 수도 있고, 실제 프로젝트에 참여해보지 않았을 수도 있을 것 같아요. 실제 온라인 프로젝트는 N 스테이션에서 읽고 쓰고 M 스테이션에서 백업하는 것에 관한 것입니다. 읽기와 쓰기가 분리된 후, N 스테이션은 읽고, N 스테이션은 쓰고, M 스테이션은 백업할 수 있습니다. 또는 1 스테이션은 읽고, 1 스테이션은 쓰고, M 스테이션을 백업할 수 있습니다.
읽기 및 쓰기 분리의 주요 목적은 서버 압력을 공유하는 것입니다. 데이터 실시간 요구 사항이 덜 엄격한 기업에 적합합니다. 다양한 읽기 및 쓰기 요구 사항에 대처하기 위해 필요에 따라 다양한 시스템 매개변수를 구성할 수 있습니다. 전체 비즈니스 시스템의 전반적인 성능!