mysql INNODB 테이블에서 키를 비활성화 (인덱싱 중단)하면 해당 설정이 얼마나 오래 지속됩니까?
다음과 같은 쿼리의 경우 :
ALTER TABLE users DISABLE KEYS;
스크립트가 끝날 때 키가 다시 활성화됩니까? 또는 인덱싱을 명시 적으로 다시 켤 때까지 지속됩니까?
mysql INNODB 테이블에서 키를 비활성화 (인덱싱 중단)하면 해당 설정이 얼마나 오래 지속됩니까?
다음과 같은 쿼리의 경우 :
ALTER TABLE users DISABLE KEYS;
스크립트가 끝날 때 키가 다시 활성화됩니까? 또는 인덱싱을 명시 적으로 다시 켤 때까지 지속됩니까?
답변:
Fine Manual (읽기 가치가 있음)은 해당 문장의 효과가 해당 ALTER TABLE ... ENABLE KEYS
문장이 실행될 때까지 지속됨을 나타냅니다 .
실제로 ALTER TABLE ... DISABLE KEYS 및 ALTER TABLE ... ENABLE KEYS가 작동하지 않습니다 !!!!
나는 추가 파기를하고 InnoDB의 모회사 인 InnoBase Oy (Oracle Borg에서 7/9 이전)에서 사실을 발견했습니다.
이 링크는 DISABLE KEYS를 수행하고 외래 키를 함께 비활성화하는 것을 제안합니다. 비록 둘 다 불필요하다고 생각하지만, 이것은 누군가를 위해 분명히 효과가있었습니다.
업데이트 2011-07-18 12:35 EDT
이것은 MySQL에 남은 악을 노출시키기 때문에 매우 좋은 질문입니다. mysqldump 프로그램은 생성 주위에 DISABLE KEYS와 ENABLE KEYS를 맹목적으로 떨어 뜨리고 스토리지 엔진에 관계없이 모든 테이블에로드합니다. 비활성화 키 및 활성화 키는 MyISAM에 대해 제대로 작동하므로 InnoDB 테이블에서 작동하지 않습니다 (최상의 경우에는 효과가 없음).이 알려지지 않은 사실은 MySQL 커뮤니티에서 더 잘 문서화해야합니다. 예, MySQL은 Oracle로 알려진 은하 제국의 한가운데에 있습니다. 앞으로의 문서 변경 사항에 대해서는 숨을 쉬지 않을 것입니다.