< / > 목차파티션(partition)
파티션 종류
파티션 사용법
파티션 테이블 생성
파티션 확인
파티션 더 쪼개기
파티션 합치기
파티션 삭제
파티션 주의할 점
공유하기 게시글 관리 구독하기Inpa Dev 👨💻Partition, 파티션 잘못된 내용이 있으면 댓글로 피드백 부탁드립니다 :) 이 글이 좋으셨다면 구독 & 좋아요 여러분의 구독과 좋아요는 구독하기 0 이전 포스트 [MYSQL] 📚 트리거(Trigger) 개념 & 사용법 다음 포스트 [MYSQL] 📚 WITH ROLLUP & Grouping 함수 전 직장에 하나의 테이블이 600GB 이상인 어느 업데이트 서버가 있었다. 업데이트는 거의 매일 신규 데이터를 추가하는 형태로 이루어지는데, 30대가 넘는 slave 서버가 rsync로 DB 파일을 동기화한다. CDN 트래픽 비용도 엄청나고 동기화 시간도 꽤 걸리기 때문에 파티셔닝을 하기로 했었다.
우선 서버에 설치된 MySQL이 partitioning을 지원해야 한다. 확인 방법 및 서버 세팅은 여기 참고. 테이블을 파티셔닝하는 방법(기준)
주로 '기간'을 기준으로 하여 Range로 나누게 된다.
레코드의 등록일을 기준으로 나눌 경우 : 등록일 칼럼이 regdt이고 형식은 datetime이라면
테이블 생성 쿼리내가 파티셔닝하려고 했던 테이블의 생성 쿼리이다. 본문에도 적었지만 아래 테이블을 파티셔닝하면 오류가 발생한다. ※ 파티셔닝의 기준이 되는 칼럼은 반드시 PRIMARY KEY로 지정이 되어 있어야 한다.
파티셔닝 쿼리기존 테이블을 등록일(regdt) 기준 월별로 파티셔닝하는 쿼리를 실행.
위에 적었다시피 오류가 발생하였다(regdt 칼럼이 PRIMARY KEY가 아니라서). 오류 피드백 - PRIMARY KEY로 지정
ALTER 해서 추가로 지정할 수도 있지만 이미 존재하고 있는 레코드에 따라 불가능할 수도 있다. ALTER가 오류 메시지와 함께 불가능한 경우에는 테이블을 dump 뜨고 CREATE 구문에 추가하여 복원하면 된다. 결과PRIMARY KEY 지정 후 파티셔닝 쿼리를 다시 실행하면 파티셔닝이 진행 된다. 아래처럼 나뉘어졌다.
참고 사이트.
공유하기 게시글 관리 구독하기화이트 러시안저작자표시 '서버&시스템 > MySQL' 카테고리의 다른 글Table 'order_log' is marked as crashed and should be repaired. (0)2022.06.27MySQL) Table Partitioning(파티셔닝) - 서버 세팅 (0)2015.08.25설치 시 지정했던 configure 옵션 확인 (0)2015.08.24Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) (0)2014.09.19mysqldump 방법 및 옵션(전체, 구조만, 한글 깨짐 방지) (0)2014.09.19 |