디스플레이에 MySQL의 최적화 방법

다음과 같이 높은 동시성 스토리지, 정상 최적화 MySQL의에서 백그라운드에서 주로 병목 :

1) 코드 SQL 문 최적화

2) 데이터베이스 필드 최적화, 인덱스 최적화

3) 버퍼를 가하고, 레디 스 / Memcache를 등등

4) 마스터로부터 판독 분리 쓰기

5) 파티션 테이블

6), 수직 분할 모듈 디커플링

7) 레벨 세분화

 

코멘트 :

1, 1 & 2는 효율성을 향상시킬 수있는 가장 쉽고 빠른 방법입니다. 일부는 가장 효율적이다, 당신은 매우 잘 한이 두 점, 색인은 각 문을 명중 말할 수 있습니다. 당신이하지만 전체 사업을 고려하는 것이 아니라 최대보다 인덱스를 작성 멀리 최적의 SQL에 도달한다. 예를 들어, 내가 하나의 사업을 충족 XX 주문 인덱스 테이블에 추가해야합니다, 그것은 추가해야하는지 여부, 다른 방법으로는 해결할 수 있습니다. 모든 기업의 요구 사항을 충족 할 경우, 지수는 홍수 것이고, 테이블의 열 개 이상의 백만, 인덱스 유지 관리 비용이 크게 증가하지만, 데이터베이스의 메모리 오버 헤드 증가했다.

2, 데이터베이스 필드의 최적화. 설계 변수 테이블 필드에 수석 프로그래머를 발견 한 날짜를 입력, 데이터 유효성 검사를 쓸 수 없습니다, 동시에 형, 비표준를 VARCHAR하도록 설계, 인덱싱 효율의 차이 (순 (시안) 내 친구가 (펜 )의 (리아) 개념 (자이) 점 (슈오)은 원칙적으로 특정의 차이는) 알 수 없습니다.

3, 읽기, 상대적으로 낮은 비즈니스 시나리오의 적은 업데이트 빈도, 또는 작은 캐시 이의를 작성하기위한 캐시는 히트 비율은 높지 않다. 일반적으로, 병행 처리 속도를 개선하고 감소시키기 위해 메인 캐시 인터페이스 DB 압력 및 이로 인해 발생하는 문제점을 가져왔다. 얼마나 많은 사용자 인터페이스를 지연? Tucao 사용자가 없었다? 업그레이드 할 필요가 없습니다? 내가 한 때 음, 배경 수준으로 우리의 사업 동시 전경이 너무 낮습니다.

도 4에서, 파티션 테이블은 따라서 테이블이고, 분할되지 않지만 블록 후, 작은 조각으로 여러 워드 문서에 저장된 데이터. 데이터의 테이블이 매우 큰, 당신은 메모리에로드하고, 한 번 큰 테이블 데이터 유지 보수 문제를 해결할 수 없습니다.

5 표에서의 수직 칼럼이 여러 테이블들로 분할 분할 디스크 IO의 압력을 감소 독립적 메인 테이블을 열 공통 확장 데이터, 텍스트 데이터 독립 열기.

6, 가장 효과적인 초퍼 중 하나이다 철거 수준. 그러나 오해는 어떤 사람들은 왜 다시 데이터를 마이그레이션 할 필요가 없습니다 매우부터 직접 수평선을 분할하지, 생각하는 것,있다. 내 개인적인 느낌은 결정이 만들어 전에, 아주 좋은 이유가 있어야한다는 것입니다. 주요 목적은 (각 압력에 배포 파트 테이블) 단일 동시 읽기 및 쓰기 능력 테이블의 수평 해상도와 디스크 IO 성능 (각각의 작은 테이블에 할당 매우 큰 파일 .MYD .MYD 파일)을 강화하는 것입니다. 더 이상의 천만 데이터가없는 경우, 왜, 분할해야 최적화를 수행 단일 테이블 만도 가능하고, 동시성의 유의 한 양이 없으면 다음, 파티션 테이블은 또한 만날 수있다. 따라서, 정상적인 상황에서, 분할 수준은 여전히 ​​단계별로 갈 필요가 설계의 마지막 선택입니다.


----------------
면책 조항 :이 문서는 CSDN 블로거 "qiuweihong의 원래 기사, 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주십시오 의해-SA 공통 평가 기준 4.0을 따릅니다. .
원본 링크 : HTTPS : //blog.csdn.net/qiuweihong/article/details/78751466

추천

출처www.cnblogs.com/betterquan/p/11415681.html