30개의 필드가 있는 빅데이터 테이블이 있습니다. int
varchar
text
1000W 이상의 데이터가 매일 추가됩니다. 이를 최적화하는 방법은 무엇입니까?
누군가에게 조언을 구했는데 비슷한 답변을 들었습니다. 이런 질문은 좀 가식적이라는 생각이 듭니다. 원래 이런 문제는 현실에서는 일어나지 않죠?
최적화 계획:
마스터-슬레이브 동기화 + 읽기-쓰기 분리:
이 테이블은 장비 조건이 있을 때 읽기와 쓰기를 분리할 수 있어 많은 작업량을 줄일 수 있습니다.
수직 테이블 분할:
원칙에 따라 각 테이블은 5개 이상의 인덱스를 가질 수 없으며 필드를 수직으로 분할하여 분할해야 합니다. 일부 필드를 새 테이블로
일반적으로 다음 원칙에 따라 수직으로 분할합니다. (먼저 이 테이블에서 핫 데이터 필드와 콜드 데이터 필드를 구분합니다.)
자주 사용하지 않는 필드를 별도의 테이블에 배치합니다.
Put text
, blob
등의 큰 필드는 분할되어 첨부된 테이블에 배치되며, 자주 결합되어 쿼리되는
열은 하나의 테이블에 배치됩니다. 많은 로직을 다시 작성해야 하므로 많은 문제가 발생합니다.
이것은 권장되는 솔루션입니다. 논리 재작성 등이 포함되지 않습니다. 테이블 파티셔닝은 시간을 기준으로 수행할 수 있으며 이는 동일합니다. 디스크. 테이블에서는 테이블의 데이터가 서로 다른 폴더에 저장되므로 쿼리 속도가 크게 향상될 수 있습니다.
1000W의 데이터가 많아 백업할 때 단일 테이블 백업에 시간이 오래 걸립니다. 테이블은 서버의 하드웨어 상태와 각 테이블의 데이터 양에 따라 수평으로 나누어집니다.
잘못된 점이 있으면 지적해 주시면 감사하겠습니다.
위 내용은 Mysql 다중 필드 대형 테이블을 위한 여러 가지 최적화 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!