반응형
마스터와 슬레이브(MySQL)에서 테이블 인덱스를 다르게 할 수 있습니까?
마스터에서 읽기 전용 슬레이브에 다른 인덱싱을 설정할 수 있습니까?기본적으로 두 시스템의 요구사항이 다른 것을 감안하면 이것이 말이 되는 것 같지만, 문제가 생기지 않도록 확실히 하고 싶습니다.
저는 그렇게 생각합니다.복제 작업이 끝나면 슬레이브에서 인덱스를 삭제하고 원하는 인덱스를 만들 수 있습니다.MySQL은 (적어도 기본적으로) 데이터가 아닌 문을 복제하기 때문에 테이블에서 삽입, 업데이트 또는 선택하는 데 필요한 SQL을 변경할 필요가 없는 한 이를 눈치채면 안 됩니다.
이것은 분명히 단점이 있습니다.마스터에 없는 고유 키를 만들면 슬레이브에 삽입할 수 없는 데이터를 마스터에 삽입할 수 있습니다.인덱스를 사용하는 업데이트를 수행하는 경우 마스터에서는 빠르게 실행되지만 슬레이브에서는 테이블 스캔이 발생할 수 있습니다(사용자에게는 사용 가능한 인덱스가 없으므로).
마스터에서 DDL 변경이 발생한 경우(예: 인덱스 변경) 슬레이브로 전달되고 새 인덱스도 생성됩니다.
물론.전 줄곧 해요.제가 직면한 문제:
- 인덱스 참조:
FORCE/USE/IGNORE INDEX
인에SELECTS
will error out - 인덱스 참조
ALTER
마스터의 문은 복제를 중단할 수 있습니다. - 유사시 노예를 주인으로 승격시키는 또 다른 단계를 추가
- 스테이트먼트 기반 복제(표준)를 사용하고 있는 경우에는
UNIQUE
인덱스, 여하한INSERT... ON DUPLICATE KEY
,INSERT IGNORE
아니면REPLACE
문은 극단적인 데이터 이동/분산을 야기할 것입니다. - 성능 차이(양호 및 불량 모두)
물론입니다. InnoDB 테이블을 슬레이브의 MyISAM 테이블에 복제하여 전체 텍스트 인덱스를 추가하는 것이 일반적인 관례라고 생각합니다.
언급URL : https://stackoverflow.com/questions/4412656/can-you-index-tables-differently-on-master-and-slave-mysql
반응형
'programing' 카테고리의 다른 글
Angular에서 window.location 또는 window.open을 설정합니다.JS는 IE 11에서 "액세스 거부"를 제공합니다. (0) | 2023.09.24 |
---|---|
실행 중인 컨테이너에서 셸 세션을 시작할 수 있습니까(ssh 없이). (0) | 2023.09.24 |
c 프로그램에서 더블 프리 또는 손상(! prev) 오류가 발생 (0) | 2023.09.24 |
AngularJS 클릭 시 눌린 키를 감지하는 방법 (0) | 2023.09.24 |
꿀꺽꿀꺽 + 웹팩? 아니면 JUST 웹팩? (0) | 2023.09.24 |