(MySQL) 파티션과 유니크 키

파티션을 생성할 수 없는 케이스

유니크 키와 파티션 키가 전혀 연관이 없기 때문에 실패
유니크 키 칼럼인 fd1 만으로 레코드가 저장돼 있는 파티션이 결정되지 않기 때문에 실패
fd1 컬럼 값 만으로 레코드가 저장돼 있는 파티션이 결정되지 않기 때문에 실패

파티션 생성 가능 케이스

fd1, fd2, fd3 컬럼 값으로 레코드가 어느 파티션에 있는지 결정할 수 있음
fd1, fd2 컬럼값으로 레코드가 어느 파티션에 있는지 결정할 수 있음
fd1, fd2, fd3 컬럼 값으로 레코드가 어느 파티션에 있는지 결정할 수 있음
  1. 테이블에서 중복을 허용하지 않는, 프라이커리 키, 유니크 인덱스만 선별
  2. 프라이커리 키와 유니크 인덱스에 공통적으로 포함돼 있는 컬럼만 수집
  3. 2번에서 수집한 컬럼 중에서 일부 또는 전체를 사용할 표현식은 파티션 표현식으로 사용할 수 있다.

open_files_limit 파라미터

MySQL 에서는 일반적으로 테이블을 파일 단위로 관리하기 때문에 MySQL 서버에서 동시에 오픈된 파일의 개수가 상당히 많아질 수 있다. 파티션되지 않은 일반 테이블은 테이블 1개당 오픈된 파일의 개수가 2~3개 수준이지만 파티션 테이블에서는 (파티션의 개수 * 2~3) 개가 된다. 때문에 파티션을 많이 사용하는 경우에는 open_file_limit 시스템 변수를적절히 높은 값으로 설정해 줄 필요가 있다.

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store