카테고리 없음2012. 12. 29. 07:13
MySQL 에서 GUID 처럼 순서가 의미 없는 값을 PRIMARY KEY 로 사용할 경우, 
InnoDB 는 PRIMARY KEY 가 항상 CLUSTERED INDEX 이므로, 불필요한 DISK I/O 가 발생함. 
따라서 MyISAM 등 다른 엔진 선택하는 것을 고려해야함. 

꼭 InnoDB를 사용해야 한다면, 아래 PRIMARY KEY 생성 우선 순위를 참고해서, 
기존의 PRIMARY KEY 필드는 NONCLUSTERED UNIQUE INDEX 로 변경하고, 
작은 크기의 PRIMARY KEY 필드를 추가하는 방법도 있음. 

* PRIMARY KEY 생성 우선순위 

1) PRIMARY KEY 로 지정된 필드 : 당연!! 
2) NOT NULL 이고, UNIQUE INDEX 인 첫번째 필드 : 자동으로 CLUSTERED INDEX 가 됨 
3) 위 1) 2) 에 해당되지 않으면, 6 bytes 의 unsigned int 의 auto_increment 키를 row 생성 순서대로 만들어서, 내부적으로 PRIMARY KEY 로 사용함. 



Posted by 좋은나무