나는 이것에 대해서도 뛰어 들었으며, 그 문제에 대한 언급은 많지 만 수집 한 주요 사실과 공유하고 싶은 점이 거의 없습니다.
파티션은 논리적으로 별개의 데이터베이스 또는 독립된 부분으로 그 구성 요소의 부분이다. 데이터베이스 파티셔닝 은 일반적으로로드 밸런싱과 같이 관리 효율성, 성능 또는 가용성 이유로 수행됩니다.
https://ko.wikipedia.org/wiki/Partition_ (데이터베이스)
샤딩 은 HP ( Horizontal Partitioning) 와 같은 파티션 유형입니다.
또한이 수직 분할 은 작은 별개의 부분으로 테이블을 분할함으로써 (부사장). 정규화에는 테이블에서 열을 분할하는 것도 포함되지만 수직 분할은이 범위를 넘어 이미 정규화되어 있어도 열을 분할합니다.
https://ko.wikipedia.org/wiki/Shard_(database_architecture)
Quora에 대한 Tony Baco의 답변을 정말 좋아합니다. 열과 행이 아닌 스키마 측면에서 생각하게합니다. 그는 ...
" 수평 분할 "또는 샤딩은 스키마를 복제 [복사] 한 다음 샤드 키를 기준으로 데이터를 분할합니다.
" 수직 파티셔닝 "은 스키마를 나누는 것과 관련이 있습니다 (그리고 데이터는 데이터를 옮깁니다).
https://www.quora.com/Whats-the-difference-between-sharding-DB-tables-and-partitioning-them
Oracle Database Partitioning Guide에는 멋진 수치가 있습니다. 나는 기사의 발췌 부분을 복사했습니다.
https://docs.oracle.com/cd/B28359_01/server.111/b32024/partition.htm
테이블을 분할하는시기
다음은 테이블을 분할 할 때 권장되는 사항입니다.
- 2GB보다 큰 테이블은 항상 파티셔닝 후보로 간주해야합니다.
- 새 데이터가 최신 파티션에 추가되는 히스토리 데이터가 포함 된 테이블. 일반적인 예는 현재 월의 데이터 만 업데이트 가능하고 다른 11 개월은 읽기 전용 인 기록 테이블입니다.
- 테이블의 내용을 다른 유형의 저장 장치에 분산시켜야하는 경우
파티션 정리
분할 프 루닝은 분할을 사용하여 성능을 향상시키는 가장 단순하고 가장 중요한 수단입니다. 파티션 정리는 종종 쿼리 성능을 몇 배 정도 향상시킬 수 있습니다. 예를 들어, 응용 프로그램에 주문 내역 레코드가 포함 된 Orders 테이블이 있고이 테이블이 주 단위로 분할되었다고 가정하십시오. 1 주일 동안 주문을 요청하는 쿼리는 Orders 테이블의 단일 파티션에만 액세스합니다. Orders 테이블에 2 년의 기록 데이터가있는 경우이 쿼리는 104 개의 파티션 대신 하나의 파티션에 액세스합니다. 이 쿼리는 파티션 정리 때문에 단순히 100 배 더 빠르게 실행될 수 있습니다.
파티셔닝 전략
텍스트를 읽고 모든 것을 잘 설명하는 이미지를 시각화 할 수 있습니다.
마지막으로 데이터베이스는 리소스를 매우 많이 사용한다는 것을 이해해야합니다.
많은 DBA는 동일한 머신에서 파티션을 작성하며, 여기서 파티션은 모든 자원을 공유하지만 데이터 및 / 또는 인덱스를 분할하여 디스크 및 I / O를 향상시킵니다.
다른 전략은 샤드가 CPU, 디스크, I / O 및 메모리의 100 % 자체를 갖는 별도의 별개의 컴퓨팅 장치 (노드)에 상주하는 "비공유"아키텍처를 사용합니다. 고유 한 장점과 복잡성을 제공합니다.
https://ko.wikipedia.org/wiki/Shared_nothing_architecture