>  기사  >  데이터 베이스  >  Mysql 다중 필드 대형 테이블을 위한 여러 가지 최적화 방법 소개

Mysql 다중 필드 대형 테이블을 위한 여러 가지 최적화 방법 소개

零下一度
零下一度원래의
2017-04-22 15:07:441114검색

30개의 필드가 있는 빅데이터 테이블이 있습니다. int varchar text 1000W 이상의 데이터가 매일 추가됩니다. 이를 최적화하는 방법은 무엇입니까?

누군가에게 조언을 구했는데 비슷한 답변을 들었습니다. 이런 질문은 좀 가식적이라는 생각이 듭니다. 원래 이런 문제는 현실에서는 일어나지 않죠?

최적화 계획:
마스터-슬레이브 동기화 + 읽기-쓰기 분리:
이 테이블은 장비 조건이 있을 때 읽기와 쓰기를 분리할 수 있어 많은 작업량을 줄일 수 있습니다.

수직 테이블 분할:
원칙에 따라 각 테이블은 5개 이상의 인덱스를 가질 수 없으며 필드를 수직으로 분할하여 분할해야 합니다. 일부 필드를 새 테이블로

일반적으로 다음 원칙에 따라 수직으로 분할합니다. (먼저 이 테이블에서 핫 데이터 필드와 콜드 데이터 필드를 구분합니다.)
자주 사용하지 않는 필드를 별도의 테이블에 배치합니다.
Put text, blob 등의 큰 필드는 분할되어 첨부된 테이블에 배치되며, 자주 결합되어 쿼리되는
열은 하나의 테이블에 배치됩니다. 많은 로직을 다시 작성해야 하므로 많은 문제가 발생합니다.

테이블 파티셔닝 사용:

이것은 권장되는 솔루션입니다. 논리 재작성 등이 포함되지 않습니다. 테이블 파티셔닝은 시간을 기준으로 수행할 수 있으며 이는 동일합니다. 디스크. 테이블에서는 테이블의 데이터가 서로 다른 폴더에 저장되므로 쿼리 속도가 크게 향상될 수 있습니다.

수평 테이블 샤딩:

1000W의 데이터가 많아 백업할 때 단일 테이블 백업에 시간이 오래 걸립니다. 테이블은 서버의 하드웨어 상태와 각 테이블의 데이터 양에 따라 수평으로 나누어집니다.
잘못된 점이 있으면 지적해 주시면 감사하겠습니다.

위 내용은 Mysql 다중 필드 대형 테이블을 위한 여러 가지 최적화 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.