N개의 Slice로 정의되었지만 SLICE=3으로 생성된 테이블

Nathan Parrish -

때때로 SHOW CREATE TABLE의 출력에서 스키마를 복사하여 붙여 넣어 테이블을 만들 때 다른 숫자를 정의할 때 생성되는 테이블에는 3개의 slice가 있습니다.

작업에서 이 문제를 확인하려면 SHOW CREATE를 사용하여 스키마 정의를 확인하십시오.

mysql> show create table bar\G
*************************** 1. row ***************************
Table: bar
Create Table: CREATE TABLE `bar` (
 `id` int(0)
) CHARACTER SET utf8 /*$ REPLICAS=2 SLICES=3 */

그리고 slice 수를 다음과 같이 변경하여 다시 붙여 넣습니다.

mysql>  CREATE TABLE `bar` (
    ->   `id` int(0)
    ->   ) CHARACTER SET utf8 /*$ REPLICAS=2 SLICES=30 *
    ->   ;

SHOW CREATE TABLE을 실행할 때 여전히 다음과 같이 기본 3개의 slice입니다.

mysql> show create table bar\G
*************************** 1. row ***************************
Table: bar
Create Table: CREATE TABLE `bar` (
 `id` int(0)
) CHARACTER SET utf8 /*$ REPLICAS=2 SLICES=3 */

이 동작의 이유는 mysql 클라이언트가 쿼리를 서버에 보내기 전에 /*$ */로 분리된 주석을 제거하기 때문입니다. 이것은 사용자가 mysql 클라이언트를 대화식으로 사용하든지 아니면 stdin에 쿼리를 입력하는지에 상관없이 이를 수행합니다.  

해결 방법은 이러한 쿼리를 Clustrix에서 수행하기 전에 주석 구분 기호를 제거하는 것입니다.  

clustrix_import는 이러한 주석을 제거하지 않지만 -A 옵션을 사용하여 자동 슬라이스를 비활성화하지 않으면 테이블에 대한 reslice 로직을 적용할 수 있습니다. 

또 다른 질문이 있으십니까? 문의 등록

0 댓글

댓글을 남기려면 로그인하세요.
Zendesk 제공