tencent cloud

피드백

TencentDB for MySQL를 통해 비즈니스 부하 능력 향상

마지막 업데이트 시간:2023-03-13 11:53:11

    우수한 성능과 확장 능력을 갖춘 데이터베이스로 기존 시스템의 부하 성능을 빠르게 향상할 수 있습니다. 똑같은 규모의 데이터베이스에서도 TencentDB for MySQL의 합리적인 사용으로 더 높은 QPS를 위해 데이터베이스 동시성을 크게 향상시킬 수 있습니다.

    1. 적절한 데이터베이스 구성 선택

    1.1 데이터베이스 버전 선택

    TencentDB for MySQL은 현재 현재 v5.5, v5.6, v5.7 및 v8.0에서 사용할 수 있으며 모두 네이티브 MySQL과 완벽하게 호환됩니다. 보다 안정적인 데이터베이스 커널을 사용하고 v5.5 및 이전 버전의 디자인을 최적화하여, 더 나은 시스템 성능과 다양한 매력적인 새 기능이 제공되므로 v5.6 이상을 선택하는 것이 좋습니다.

    본 문서는 MySQL v5.7을 예로 들어 새 버전의 기능을 설명합니다. 이 버전은 뛰어난 성능, 안정성 및 사용 편의성으로 널리 알려져 있습니다. 일부 개선 사항 및 새로운 기능은 다음과 같습니다.

    • 네이티브 JSON 지원
      MySQL v5.7에서는 MySQL 테이블에 네이티브 JSON 형식으로 데이터를 저장하기 위해 새로운 데이터 유형이 추가되었으며 다음과 같은 이점이 있습니다.
    • 문서 인증: JSON 규칙에 따른 데이터 세그먼트만 JSON 유형 열에 입력할 수 있습니다. 즉, 자동화된 JSON 구문 인증이 있음을 의미합니다.
    • 고효율 액세스: JSON 문서가 JSON 유형 열에 저장되면 데이터가 일반 텍스트로 저장되지 않습니다. 대신 최적화된 이진법 형식으로 저장되므로 객체 구성원과 배열 요소에 더 빠르게 액세스할 수 있습니다.
    • 성능 향상: query 성능을 향상시키기 위해 JSON 형식의 열에 있는 데이터에 인덱스를 생성할 수 있습니다. 이러한 인덱스는 가상 컬럼에 생성된 ‘함수 인덱스’를 통해 구현할 수 있습니다.
    • 편의성: JSON 유형 열에 연결된 인라인 구문은 features와 같은 SQL 문에서 문서 쿼리에 자연스럽게 통합될 수 있습니다. feature은 JSON 필드입니다.
       SELECT feature->"$.properties.STREET" AS property_street FROM features WHERE id = 121254;
      

    MySQL 5.7을 사용하면 하나의 툴에서 최고의 관계형 샘플을 최고의 문서 샘플과 원활하게 통합하여 다양한 애플리케이션 및 사용 사례에서 가장 적합한 샘플을 사용하여 애플리케이션 범위를 크게 확장할 수 있습니다.

    • SYS Schema
      MySQL SYS Schema는 뷰, 저장 프로시저, 저장 방법, 테이블 및 트리거와 같은 객체 집합으로 구성된 database schema입니다. Performance Schema 및 INFORMATION_SCHEMA의 다양한 테이블에 저장된 풍부한 모니터링 데이터에 대한 쉽고 읽기 쉬운 DBA 및 개발자 친화적인 액세스를 제공합니다.
      MySQL SYS Schema는 MySQL 5.7에 기본 탑재되어 있으며, 아래와 같이 FAQ에 대한 해결을 위해 요약 뷰를 제공합니다.
    • 데이터베이스 서비스의 모든 리소스를 차지하는 것은 무엇입니까?
    • 데이터베이스 서버에 대한 액세스양이 가장 큰 CVM 인스턴스는 무엇인가요?
    • 인스턴스 메모리는 어떻게 사용되나요?
    • InnoDB 개선
    • InnoDB(Online DDL)의 온라인 작업: MySQL을 다시 시작하지 않고도 Buffer Pool size를 동적으로 조정하여 비즈니스 요구 사항의 변화에 적응할 수 있습니다. InnoDB는 이제 UNDO 로그와 온라인 테이블스페이스를 자동으로 비울 수 있으므로 큰 공유 테이블스페이스 파일(ibdata1)에 대한 가장 일반적인 이유 중 하나를 제거합니다. 또한 MySQL v5.7은 인덱스 이름 변경 및 varchar 크기 변경을 지원합니다. 두 작업 모두 이전 버전에서 인덱스 또는 테이블을 재생성해야만 수행할 수 있었습니다.
    • InnoDB 네이티브 파티션: MySQL v5.7 InnoDB는 파티셔닝에 대한 네이티브 지원이 포함되어 있습니다. 부하를 줄이고 메모리 사용량을 최대 90%까지 낮출 수 있습니다.
    • InnoDB 캐시 프리패치: MySQL이 다시 시작되면 InnoDB는 버퍼 풀에서 가장 인기 있는 데이터의 25%를 자동으로 보관하므로 데이터 캐시를 미리 로딩하거나 미리 가져올 필요가 없으며 MySQL 재시작으로 인한 잠재적인 성능 손실을 방지할 수 있습니다.

    MySQL 5.7의 개선 사항 및 새로운 기능에 대한 자세한 내용은 MySQL의 공식 문서를 참고하십시오.

    1.2 데이터베이스 메모리 선택

    현재 TencentDB for MySQL은 별도의 CPU 옵션을 제공하지 않습니다. 대신 CPU는 메모리 사양에 따라 비례적으로 할당됩니다. 비즈니스 특성에 따라 데이터베이스 사양을 구매할 수 있습니다. 사양 선택 시 참고할 수 있는 성능 정보를 제공하기 위해 각 유형의 인스턴스에 대해 철저한 벤치마크 테스트를 수행했습니다.
    그러나 Sysbench 활성화 테스트가 모든 비즈니스 시나리오를 나타낼 수는 없다는 점에 유의해야 합니다. TencentDB for MySQL이 비즈니스 시나리오에서 어떻게 작동하는지 더 잘 이해할 수 있도록 인스턴스를 공식적으로 시작하기 전에 인스턴스에 대한 스트레스 테스트를 수행하는 것이 좋습니다. 자세한 내용은 성능 개요를 참고하십시오.

    메모리는 디스크보다 훨씬 빠른 액세스 속도를 특징으로 하는 핵심 인스턴스 메트릭 중 하나입니다. 일반적으로 메모리에 캐시된 데이터가 많을수록 데이터베이스 응답 속도가 빨라집니다. 메모리가 작으면 저장된 데이터가 일정량을 초과한 후 초과된 데이터는 디스크에 저장됩니다. 그런 다음 새 요청이 데이터에 다시 액세스하면 디스크에서 메모리로 데이터를 읽어 디스크 IO를 소비하고 데이터베이스 응답 속도가 느려집니다.

    읽기 동시성이 높거나 읽기 지연에 민감한 비즈니스의 경우 높은 데이터베이스 성능을 보장할 수 있도록 더 높은 메모리 사양을 선택하는 것이 좋습니다.

    1.3 디스크 선택

    TencentDB for MySQL 인스턴스의 디스크 공간에는 데이터, 시스템, binlog 및 임시 파일이 포함됩니다. 입력한 데이터의 양이 인스턴스의 디스크 용량을 초과하는 경우 인스턴스가 업그레이드되지 않으면 인스턴스 잠금이 트리거될 수 있습니다. 따라서 디스크를 구매할 때 향후 데이터 볼륨 증가 가능성을 고려하고 더 큰 디스크를 선택하여 디스크 용량 부족으로 인해 인스턴스가 잠기거나 자주 업그레이드되는 것을 방지할 수 있습니다.

    1.4 적합한 데이터 복제 방식 선택

    TencentDB for MySQL은 비동기화, 반동기화, 강제 동기화 세 가지 복제 방식을 제공하며, 자세한 내용은 데이터베이스 인스턴스 복사를 참고하십시오. 비즈니스가 쓰기 대기 시간 또는 데이터베이스 성능에 민감한 경우 비동기 복제 방식을 선택하는 것이 좋습니다.

    1.5 TencentDB의 고가용성

    TencentDB for MySQL의 고가용성은 원본 복제 아키텍처에 의해 보장됩니다. 원본-복제본 데이터 동기화는 binlog를 통해 이루어집니다. 또한 임의의 이전 시점으로 데이터베이스를 롤백할 수 있습니다. 이 기능은 백업 및 로그에 의존하므로 일반적으로 백업 및 복구 시스템을 직접 설정하거나 인스턴스의 고가용성을 유지하기 위해 추가 비용을 지불할 필요가 없습니다.

    1.6 TencentDB의 확장성

    TencentDB for MySQL의 모든 다양한 데이터베이스 버전과 메모리/디스크 사양은 핫 업그레이드를 지원합니다. 업그레이드 프로세스는 비즈니스를 방해하지 않으므로 비즈니스 성장으로 인한 데이터베이스 병목 현상에 대한 우려를 제거합니다.

    1.7 CVM과 TencentDB for MySQL 함께 사용

    구매 후 CVM과 TencentDB for MySQL을 함께 사용해야 하는 경우가 많습니다. 자세한 내용은 MySQL 인스턴스 연결을 참고하십시오.

    2. 읽기 전용 인스턴스를 읽기 확장으로 사용

    일반적인 인터넷 기반 비즈니스에서 데이터베이스의 읽기/쓰기 비율은 일반적으로 4:1에서 10:1 범위이며, 이는 데이터베이스의 읽기 부하가 쓰기 부하보다 훨씬 높다는 것을 의미합니다. 성능 병목 현상이 발생하면 일반적인 솔루션은 읽기 로드를 처리하는 기능을 향상시키는 것입니다.
    TencentDB for MySQL 읽기 전용 인스턴스는 이러한 문제에 읽기 확장 솔루션을 제공합니다. 자세한 내용은 읽기 전용 인스턴스 생성을 참고하십시오.
    읽기 전용 인스턴스는 다양한 비즈니스에서 읽기 전용 액세스에 사용할 수도 있습니다. 예를 들어 원본 인스턴스는 온라인 비즈니스에 대한 읽기/쓰기 액세스를 수행하는 반면 읽기 전용 인스턴스는 내부 비즈니스 또는 데이터 분석 플랫폼에 대한 읽기 전용 쿼리를 제공합니다.

    3. TencentDB 재해 복구 솔루션

    TencentDB for MySQL은 재해 복구 인스턴스를 제공하여 데이터베이스에 대한 원격 재해 복구를 신속하게 설정할 수 있도록 도와줍니다.

    재해 복구 인스턴스의 도움으로 서로 다른 리전에 있는 여러 데이터 센터가 서로 중복으로 작동할 수 있으므로 한 데이터 센터가 장애 또는 불가항력 이벤트로 인해 서비스를 제공할 수 없는 경우 서비스를 다른 데이터 센터로 신속하게 전환할 수 있습니다. 재해 복구 인스턴스는 Tencent Cloud 사설망을 사용하여 데이터를 동기화하고 복제는 MySQL 커널 수준에서 최적화되어 재해 발생 시 지연된 동기화가 비즈니스에 미치는 영향을 최소화할 수 있습니다. 원격 서비스 논리가 준비되어 있는 한 재해 복구 전환은 몇 초 안에 완료될 수 있습니다.

    4. 2리전 3데이터센터 프로그램

    TencentDB for MySQL을 사용하면 몇 가지 간단한 단계만으로 2리전 3데이터센터 스키마를 구성할 수 있습니다.

    • TencentDB for MySQL 도시 내 강력한 일관성 클러스터를 구입하고 1리전 2데이터센터 용량을 제공하는 멀티 가용존 배포(현재 베타 테스트 중)를 선택합니다.
    • 2리전 3데이터센터 아키텍처를 구축하기 위해 클러스터에 원격 재해 복구 노드를 추가합니다.

    5. 재해 복구 인스턴스를 사용하여 사용자에게 근거리 액세스 제공

    재해 복구 인스턴스는 또한 고가용성 M-S(원본 복제) 아키텍처를 채택합니다. 또한 읽기 전용 방식으로 액세스할 수 있으므로 다른 리전의 사용자가 가까운 곳의 비즈니스에 액세스해야 하는 시나리오에서도 안심하고 재해 복구 인스턴스를 사용할 수 있습니다.

    문의하기

    고객의 업무에 전용 서비스를 제공해드립니다.

    기술 지원

    더 많은 도움이 필요하시면, 티켓을 통해 연락 바랍니다. 티켓 서비스는 연중무휴 24시간 제공됩니다.

    연중무휴 24시간 전화 지원